403在调用Ionic 3时禁止在Console.log上使用

问题描述 投票:1回答:3

我做了一个APi电话,想要检索包含类似值的{{item.photo}}

http://example.com/img/1461212599.jpg

我在浏览器中打开它没有问题。图像显示正常。但从Ionic 3应用程序访问时禁止错误403。

可能是什么问题以及如何解决?

UPDATE

休息提供者

getItembyCategory() {
    return this.http.get(this.apiUrl)
     .toPromise()
     .then(data => {
        return data;
     })
     .catch(err => {
        return err;
     })
   }

Home.ts

import { RestapiProvider } from './../../providers/restapi/restapi';
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  items; 

  constructor(public navCtrl: NavController, public restProvider: RestapiProvider) {

  }

  getProduct(){
    this.restProvider.getItembyCategory()
     .then(data => {
       this.items = data['details']['item'];
    });
  }

  generatePriceArray(obj){
    return Object.keys(obj).map((key)=>{ return obj[key]});
 }

ionViewDidLoad(){
  this.getProduct();
}

}

Home.html中

<ion-header>
  <ion-navbar>
    <button ion-button menuToggle>
      <ion-icon name="menu"></ion-icon>
    </button>
    <ion-title>Home</ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  <ion-list inset >
      <ion-item *ngFor="let item of items">
          <ion-thumbnail item-start>
            <img src="{{item.photo}}">
          </ion-thumbnail>
          <h2 text-wrap>{{item.item_name}}</h2>
          <p *ngFor="let price of generatePriceArray(item)"> {{price.price}}</p>
      </ion-item>
  </ion-list>
</ion-content>
ionic3 http-status-code-403
3个回答
1
投票

我解决了这个问题。它由Cloudflare的Hotlinking Protection引起。默认情况下,启用热链接保护。只需在Scrape Shield页面上将其关闭即可将其禁用。

希望可以帮助其他像我一样有问题的人。


0
投票

我强烈建议你使用property binding代替string interpolation

 <img [src]="item?.photo">

0
投票

当得到403响应时,意味着服务器拒绝了您的请求。您需要检查您的IP是否已被此服务器阻止。您说您可以在浏览器中打开它,这意味着您的IP未被服务器阻止。您需要检查是否您需要在访问此网址时根据您的请求添加标题。如果您的请求没有标题,服务器可能会认为它是一个机器人访问阻止您的请求并返回403给您。

© www.soinside.com 2019 - 2024. All rights reserved.