【发布时间】:2018-12-17 06:18:09
【问题描述】:
我正在尝试从我的本地主机获取数据,如下所示:
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
@Injectable({
providedIn: 'root'
})
export class SearchServiceService {
apiRoot:string = 'https://itunes.apple.com/search';
results:Object[];
loading:boolean;
constructor(private http:HttpClient) {
this.results = [];
this.loading = false;
}
search(term:string){
let promise = new Promise((resolve, reject) => {
let apiURL = `${this.apiRoot}?term=${term}&media=music&limit=20`;
this.http.get(apiURL).toPromise().then(res => {
// console.log( res.json() );
resolve();
}, function(error){
console.log('error is', error);
})
});
return promise;
}
}
我正在使用Chrome 浏览器。为了防止CORS 问题,我使用了这个扩展:
https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi/related?hl=en-US
但仍然收到错误:
Failed to load https://itunes.apple.com/search?term=Moo&media=music&limit=20: The 'Access-Control-Allow-Origin' header contains multiple values 'http://evil.com/, *', but only one is allowed. Origin 'http://localhost:4200' is therefore not allowed access.
zone.js:2969 Cross-Origin Read Blocking (CORB) blocked cross-origin response https://itunes.apple.com/search?term=Moo&media=music&limit=20 with MIME type text/javascript. See https://www.chromestatus.com/feature/5629709824032768 for more details.
没有得到数据。我需要在这里做哪些更改?有人帮我吗?
【问题讨论】:
-
@anyone - 而不是只是把
down vote寻找一些帮助 -
CORS阻止您获取数据。如果服务器不让您进入,那么您是否通过 chrome 启用也没关系,那么您就不会获得任何数据 -
如果我只是通过浏览器窗口中的 url,我正在获取数据..
-
我在这里概述了一个适合我的解决方案。 stackoverflow.com/questions/47345282/…
-
有没有人找到解决办法