No' Access-Control-Allow-Origin' header存在于localhost上的请求资源上

时间:2017-01-23 12:18:45

标签: json api angular localhost

我试图调用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());
    }
}

1 个答案:

答案 0 :(得分:1)

您尝试访问的API由JSONP组成,因此您需要通过jsonp调用进行访问。 JSONP类似于在html中添加script标记。幸运的是,角度2有自己的jsonpmodule,您可以在https://angular.io/docs/ts/latest/api/http/index/JsonpModule-class.html

进行研究