我试图调用Ebay API,但它不能在我的本地服务器上运行。我收到以下错误;
否'访问控制 - 允许 - 来源'标题出现在请求的上 资源。起源' http://localhost:3000'因此是不允许的 访问。
我已经阅读了有关JSONP和标题的内容,但我没有得到它。谁能帮我解释一下?
代码(angular2):
@Injectable()
export class PostsService {
constructor(private http: Http) {
console.log('PostsService Initialized...')
}
getPosts() {
return this.http.get('http://svcs.ebay.com/services/search/FindingService/v1?OPERATION-NAME=findItemsByKeywords&SERVICE-VERSION=1.0.0&SECURITY-APPNAME=XXXXXkeyXXXX&RESPONSE-DATA-FORMAT=JSON&callback=processJSON&REST-PAYLOAD&keywords=shoe&global-id=EBAY-GB')
.map(res => <Post[]>res.json());
}
}
答案 0 :(得分:1)
您尝试访问的API由JSONP
组成,因此您需要通过jsonp调用进行访问。 JSONP类似于在html中添加script
标记。幸运的是,角度2有自己的jsonpmodule,您可以在https://angular.io/docs/ts/latest/api/http/index/JsonpModule-class.html