У меня возникла проблема с получением данных с моего сервера node.js.Контроль доступа Разрешить возникновение проблемы в Angular 2
сторона клиента:
public getTestLines() : Observable<TestLine[]> {
let headers = new Headers({ 'Access-Control-Allow-Origin': '*' });
let options = new RequestOptions({ headers: headers });
return this.http.get('http://localhost:3003/get_testlines', options)
.map((res:Response) => res.json())
.catch((error:any) => Observable.throw(error.json().error || 'Server error'));
}
в стороне сервера Я также установил заголовки:
resp.setHeader('Access-Control-Allow-Origin','*')
resp.send(JSON.stringify(results))
Но я получаю сообщение об ошибке
«XMLHttpRequest не может загрузить http://localhost:3003/get_testlines . Ответ на предполетный запрос не проходит проверку контроля доступа: НетНа запрошенном ресурсе присутствует заголовок «Access-Control-Allow-Origin». Происхождение «http://localhost:3000», следовательно, не имеет право доступа.»
Как я могу это исправить? Когда я удалить заголовки он говорит, что требуется этот заголовок.
Вы используете Crome? Если да, то включите Access-Control-Allow-Origin. У Crome есть плагин для корса. Для IE вы не должны получать эту ошибку после установки заголовков –
Это скорее всего проблема на стороне сервера. Вы уверены, что ваш ответ действительно отправляет заголовки в запрос 'OPTIONS'? Например, вы можете попробовать почтальон, чтобы проверить заголовки. – Randy