Я пытаюсь позвонить в Ebay API, но он не будет работать на моем локальном сервере. Я получаю следующую ошибку;Нет заголовка «Access-Control-Allow-Origin» присутствует на запрошенном ресурсе на localhost
Нет заголовка «Access-Control-Allow-Origin» на запрашиваемом ресурсе . Origin '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());
}
}
https://angular.io/docs/ts/latest/api/http/index/JsonpModule-class.html – anshuVersatile
Сервер не поддерживает вызывается из веб-приложений, которые не загружаются с одного и того же URL-адреса. Для поддержки этого сервера необходимо перенастроить. JSONP, как упоминалось в @anshuVersatile, является обходным решением. Другим обходным решением является запрос на ваш собственный сервер, который перенаправляет URL-адрес ebay и возвращает ответ браузеру. Только браузер проверяет заголовки Access-Control-Xxxx. Серверу все равно. –
Спасибо за ответы, я понимаю обходные пути, о которых вы говорите. Хотя, я довольно новичок в обработке запросов и до сих пор не могу понять, как сделать запрос перенаправления, который должен отвечать на мой браузер данными. Есть ли какие-нибудь примеры? – Bokdem