Demande de champ d'en-tête X-CSRFToken n'est pas autorisé par Access-Control-Allow-les en-Têtes de contrôle en amont de la réponse
Je suis en train de faire un appel API pour la GroupMe API pour récupérer une réponse JSON mais reçois l'erreur suivante:
XMLHttpRequest cannot load ...(call url)...
Request header field X-CSRFToken is not allowed by Access-Control-Allow-Headers in preflight response.
Mon Javascript ressemble à ceci:
var xmlhttp = new XMLHttpRequest();
var url = (call url)
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
xmlhttp.open("GET", url, true);
xmlhttp.setRequestHeader("Access-Control-Allow-Headers", "*");
xmlhttp.setRequestHeader('Access-Control-Allow-Origin', '*');
$.getJSON(url, function(data){
var array = data.response.messages.reverse();
for(i = 0; i<array.length; i++){
$('.messages').append("<div class='message'>"+array[i].name+":<br>"+array[i].text+"</div>");
}
});
}
}
xmlhttp.open("GET", url, true);
xmlhttp.send();
Je ne comprends pas vraiment comment les en-têtes de demande de travail, donc je devine que je suis de ne pas définir les en-têtes correctement. Quelqu'un peut me pointer dans la bonne direction quant à comment je peux définir les en-têtes à résoudre ce problème?
vous n'avez pas besoin de jouer avec ces en-têtes de la part du client, ceux-ci sont serveur en-têtes de réponse. assurez-vous que votre serveur est une liste blanche
oh, et nous avons JSers ne pas réaliser de contrôle en amont, le navigateur n'est que pour nous et permet à notre "régulier-cul" ajax travail si elle passe...
X-CSRFToken
dans ACAH si c'est une partie de la réponse.oh, et nous avons JSers ne pas réaliser de contrôle en amont, le navigateur n'est que pour nous et permet à notre "régulier-cul" ajax travail si elle passe...
OriginalL'auteur spotatoz | 2015-11-17
Vous devez vous connecter pour publier un commentaire.
Si vous faites un appel vers le serveur d'un tiers, pour le contrôle en amont de la demande, le
response header
doit contenirAccess-Control-Allow-Headers: X-CSRF-Token
pour se débarrasser de l'erreur que vous obtenez. Mais nous n'avons pas le contrôle.Il est totalement sous notre contrôle si l'appel est effectué à notre serveur, où vous pouvez l'ajouter
Access-Control-Allow-Headers: X-CSRF-Token
dans la réponse à votre demande de contrôle en amont qui est de typeOPTIONS
dans le cas où si vous envoyez unajax jQuery request
aveccrossDomain parameter set to true
.Où dois-je mettre cela en axios?
OriginalL'auteur yottabytt