Angular2 : X-XSRF-JETON n'est pas autorisé par Access-Control-Allow-en-Têtes
Je suis aux prises avec ce problème aujourd'hui, car je suis la mise en œuvre d'un cross-site de l'appel d'API. Le pire, c'est qu'il fonctionne bien de mon environnement local, mais une fois sur heroku, il échoue avec l'erreur suivante:
XMLHttpRequest ne peut pas charger https://restcountries.eu/rest/v1/all. Demande de champ d'en-tête X-XSRF-JETON n'est pas autorisé par Access-Control-Allow-les en-Têtes de contrôle en amont de la réponse.
Ici, est la fonction qui déclenche l'appel:
let observable = this._http
.get(GEO_API_URL + query)
.map(response => response.json())
.do(val => {
this.cache = val;
observable = null;
})
.share();
return observable;
Une idée ?
Grâce.
Qui doit être configurée pas le serveur et ne sont pas liés à Angular2. Voir aussi stackoverflow.com/questions/10143093/...
Merci pour votre réponse Günter. Je sais que c'est pas Anguleux, mais il devrait y avoir une sorte de solution de contournement ? Mais quand j'ai essayer de remplacer le Contrôle d'Accès-Request-Headers, il dit: "a Refusé d'dangereuses en-Tête".
Je ne sais pas où vous remplacez l'en-tête et je ne sais pas quelle solution de contournement que vous voulez dire. Angulaire n'est pas impliqué dans cette, le contrôle en amont de la demande est créée par votre navigateur pour ne pas Angulaire. Seulement après la réponse à la demande de contrôle en amont contient les bons en-têtes, le navigateur est en train de faire la demande initiée par Angulaire.
Merci pour le suivi. Je n'ai pas dit que c'était anguleux, je l'ai mentionné angulaire sur le titre parce que c'est la technologie que j'utilise ici. Il fonctionne en local mais une fois sur heroku, il ne parvient pas... c'est tout.
Si vous avez accès à une URL différente (même si seul le port est différent) le navigateur requiert de la SCRO en-têtes. Vous aurez à chercher comment les configurer sur Heroku.
Merci pour votre réponse Günter. Je sais que c'est pas Anguleux, mais il devrait y avoir une sorte de solution de contournement ? Mais quand j'ai essayer de remplacer le Contrôle d'Accès-Request-Headers, il dit: "a Refusé d'dangereuses en-Tête".
Je ne sais pas où vous remplacez l'en-tête et je ne sais pas quelle solution de contournement que vous voulez dire. Angulaire n'est pas impliqué dans cette, le contrôle en amont de la demande est créée par votre navigateur pour ne pas Angulaire. Seulement après la réponse à la demande de contrôle en amont contient les bons en-têtes, le navigateur est en train de faire la demande initiée par Angulaire.
Merci pour le suivi. Je n'ai pas dit que c'était anguleux, je l'ai mentionné angulaire sur le titre parce que c'est la technologie que j'utilise ici. Il fonctionne en local mais une fois sur heroku, il ne parvient pas... c'est tout.
Si vous avez accès à une URL différente (même si seul le port est différent) le navigateur requiert de la SCRO en-têtes. Vous aurez à chercher comment les configurer sur Heroku.
OriginalL'auteur kfa | 2016-07-26
Vous devez vous connecter pour publier un commentaire.
Eu le même problème.
Dans mon cas, la raison en est que, dans mon Chrome cookies a été enregistré le X-XSRF-JETON de champ. Et en quelque sorte de Chrome ajouté en-tête de 'Contrôle d'Accès-Request-Headers: x-xsrf-jeton" à l'OPTION de demande. Dans Firefox, la même page fonctionne très bien, en mode navigation privée de Chrome.
Donc, je viens de supprimer ces cookies champ (X-XSRF-JETON) et c'est tout.
Bien sûr, pas de problème. Heureux de vous aider)
Merci beaucoup @zahar_g . Mais maintenant, je me demande. Qu'en est-il de la production? Est-ce qui va se passer pour mes utilisateurs?
merci! a travaillé pour moi.
OriginalL'auteur zahar_g
Dans mon cas, j'ai dû ajouter le " x-xsrf-jeton' valeur 'Access-Control-Allow-en-Têtes" en-tête:
voir AngularJS: publier des Données Externes API REST
OriginalL'auteur LeonardoX
cela m'a aidé en java (exposer les en-têtes et de l'inclure dans le autoriser les en-têtes). Ce sera ensuite montrer en votre objet HttpResponse:
OriginalL'auteur arn-arn
J'ai effacé les cookies, cela a résolu le problème.
OriginalL'auteur Василь Петров