在Mangaeden API Angular 6中无法获取图片网址

时间:2018-09-18 01:42:44

标签: angular rest api http-headers cross-domain

我尝试获取Mangaeden API的信息,并且成功获得了响应,但是当我从url渲染图像时。我收到了错误403。似乎在API中进行请求时遇到了问题。

这是应用程序中的错误。

  

获取   https://cdn.mangaeden.com/mangasimg/63/63df51e43ebfb8983eb39744496b27ef6173b2237535b9c2408ea32d.jpg   403

但是当我尝试在浏览器中加载该URL并下次在我的应用程序中尝试该URL时,它可以工作,因为我认为它将在浏览器中缓存该图像。

这是Mangaeden API信息

  

您可以通过以下方式获取所有漫画信息,章节和mymanga   mangaeden的API。所有信息均以JSON格式发送。您   可以使用HTTP或HTTPS(建议使用mymanga的   API)。重要提示:我们要求每个API用户都有指向我们网站的链接   在他们的应用程序/站点中。新功能:我们现在也支持CORS

关于此。我在哪里可以添加他们的链接

  

我们要求每个API用户在其网站上都具有指向我们网站的链接   应用程序/站点。

HTML

<img src="{{url}}">

组件代码

@Component({
  selector: 'app-list',
  templateUrl: './list.component.html',
})
export class ListComponent implements OnInit {
  url: String;

  constructor(private mangaedenService: MangaedenService) {}

  isRedered(id) {
    this.url = null;

    this.mangaedenService.getInfo(id)
      .subscribe(data => {
        this.url = 'https://cdn.mangaeden.com/mangasimg/' + data.image;
      });
  }
}

服务代码

import { Injectable } from '@angular/core';
import 'rxjs/add/operator/map';
import { HttpClient } from '@angular/common/http';

@Injectable({
  providedIn: 'root'
}) 
export class MangaedenService {

  constructor(private http: HttpClient) {}

  getInfo(id) {
    return this.http.get('https://www.mangaeden.com/api/manga/' + id)
      .map(this.extract);
  }

  private extract(res: Response | any) {
    return res || {};
  }
}

1 个答案:

答案 0 :(得分:1)

实际上,我的代码没有问题。在html中渲染图像时出现错误,得到403响应。我在html代码中添加了它,并且可以正常工作。

<meta name="referrer" content="no-referrer"/>

您也可以查看此

Remove http referer