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

La définition de l'en-tête Authorization dans XMLHttpRequest modifie le verbe HTTP

La définition de l'en-tête Authorization dans XMLHttpRequest modifie le verbe HTTP

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.

La définition de l'en-tête Authorization dans XMLHttpRequest modifie le verbe HTTP

source d'informationauteur Gulshan | 2014-03-14