Mam problem z pobieraniem danych z mojego serwera node.js.Kontrola dostępu Pozwól na problem pochodzenia w Angular 2
po stronie klienta jest:
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'));
}
na stronie serwera również ustawić nagłówki:
resp.setHeader('Access-Control-Allow-Origin','*')
resp.send(JSON.stringify(results))
Ale pojawia się błąd
„XMLHttpRequest nie może załadować http://localhost:3003/get_testlines . Odpowiedź na żądanie kontroli wstępnej nie przechodzi kontroli dostępu: nie nagłówek "Access-Control-Allow-Origin" jest obecny na żądanym zasobie . Pochodzenie „http://localhost:3000” nie jest zatem dozwolone dostępu „.
Jak mogę to naprawić? Kiedy usunąć nagłówki mówi, że wymagana jest ten nagłówek.
Czy używasz Crome? Jeśli tak, włącz opcję Access-Control-Allow-Origin. Crome ma wtyczkę dla cors. W przypadku IE błąd ten nie powinien wystąpić po ustawieniu nagłówków –
Jest to najprawdopodobniej problem związany z serwerem. Czy na pewno twoja odpowiedź faktycznie wysyła nagłówki na żądanie "OPCJE"? Możesz wypróbować listonosza, by sprawdzić nagłówki, na przykład. – Randy