Ich habe heute mit diesem Problem zu kämpfen, da ich eine Cross-Site-API-Aufruf implementieren. Das Schlimmste ist es gut von meinem lokalen Umfeld funktioniert, aber einmal auf Heroku, schlägt es mit dem folgenden Fehler:Angular2: X-XSRF-TOKEN ist nicht zulässig von Access-Control-Allow-Header
XMLHttpRequest cannot load https://restcountries.eu/rest/v1/all . Request header field X-XSRF-TOKEN is not allowed by Access-Control-Allow-Headers in preflight response.
Hier wird die Funktion Auslösung des Anrufs:
let observable = this._http
.get(GEO_API_URL + query)
.map(response => response.json())
.do(val => {
this.cache = val;
observable = null;
})
.share();
return observable;
Jede Idee?
Danke.
That muss auf dem Server konfiguriert werden und ist nicht mit Angular2 verbunden. Siehe auch http://stackoverflow.com/questions/10143093/origin-is-not-allowed-by-access-control-allow-origin –
Danke für deine Antwort Günter. Ich weiß, es ist nicht winklig, aber es sollte eine Art Workaround geben? Aber wenn ich versuche, die Access-Control-Request-Header zu ersetzen, heißt es: "Weigerte sich, unsafe Header zu setzen". – kfa
Ich weiß nicht, wo Sie die Kopfzeile ersetzen und ich weiß nicht, welche Abhilfe Sie meinen. Angular ist daran nicht beteiligt, die Preflight-Anfrage wird von Ihrem Browser nicht von Angular erstellt. Erst nachdem die Antwort auf die Preflight-Anfrage die richtigen Header enthält, führt der Browser die tatsächliche Anfrage aus, die von Angular initiiert wurde. –