La définition de l'en-tête Authorization dans XMLHttpRequest modifie le verbe HTTP
Aujourd'hui j'ai trouvé un étrange comportement de XMLHttpRequest. Quand je demande un service, j'ai trouvé que si je n'ai pas donné l'Autorisation d'en-tête de la requête à partir de firefox est la même. Mais si j'ajoute le "Autorisation" de l'en-tête firefox d'abord envoyer une demande avec des "OPTIONS" puis il envoie une demande de "GET".
Je sais que le verbe "OPTIONS" doivent être traités dans le côté serveur, mais je me demandais juste pourquoi XMLHttpRequest se comporte comme cela. Si c'est une croix de domaine demande, pourquoi le navigateur d'envoyer d'abord les "OPTIONS" de la demande. Pourquoi l'ajout d'une "Autorisation" de l'en-tête modifie le comportement.
Voici mon code Javascript et Fidler Inspecteur rapport.
var xmlhttp = new XMLHttpRequest();
var url = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
xmlhttp.open('GET',url,true);
xmlhttp.setRequestHeader("Authorization", "xxxxxxxxxxxxxxxxxxx");
xmlhttp.send(null);
xmlhttp.onreadystatechange = function() {
alert("OnReadystatechange + " + xmlhttp.readyState + " " + xmlhttp.status);
if (xmlhttp.readyState == 4) {
if ( xmlhttp.status == 200) {
}
else {
}
}
else
alert("Error ->" + xmlhttp.responseText);
}
Et le violoneux de réponse avec en-Tête d'Autorisation
Mais quand je ne suis pas d'ajouter l'en-tête d'Autorisation directe du navigateur envoie la requête GET aucune demande d'OPTIONS.
source d'informationauteur Gulshan | 2014-03-14
Vous devez vous connecter pour publier un commentaire.
HTTP
OPTIONS
demande est utilisé pour "contrôle en amont" de la croix-origineGET
demande, avant de l'envoyer.Donc dans votre cas, le réglage de l'en-tête d'Autorisation est à l'origine de la demande à être contrôlé, d'où le
OPTIONS
demande.Plus d'info ici
Spécification de la Croix-Origine de la Demande avec contrôle en amont