2 votes

L'en-tête d'autorisation Ajax n'a pas été envoyé

J'ai quelques difficultés avec mon en-tête d'autorisation Ajax. J'essaie de l'envoyer de cette façon :

$.ajax({
    url: query,
    type: "GET",
    accept: "application/json",
    dataType: 'json',
    beforeSend: function (xhr) {
        alert('1');
        var bytes = Crypto.charenc.Binary.stringToBytes("xxxxxxxx:xxxxxxxxx");
        alert('2'+bytes);
        var bas64 = Crypto.util.bytesToBase64(bytes);
        alert('3'+bas64);
        xhr.setRequestHeader("Authorization", "Basic " + bas64);
        alert('up and awaaaaaaaay');
    },
    succes: function (result) {
        alert('success!');
    },
    error: function (xhr, ajaxOptions, thrownError) {
        alert(xhr.responseText);
        //$('#DisplayInfoLoader').html('<span style="color: red;">An Error occured....' + xhr.responseText + '</span>');
        //$('#DisplayInfoLoader').fadeOut(3000);
    }
});

Mais quand j'essaie ce code... il n'envoie pas l'en-tête... Aller à l'url de requête à la main et remplir les informations d'identification fonctionne... et même avec les informations d'identification dans une session (la requête GET /client envoie parfaitement l'en-tête d'autorisation), l'en-tête n'est PAS envoyé lors de l'accès à l'URI /Projet.....

3voto

Arninja Points 715

La solution était que les en-têtes n'étaient pas autorisés par le service. Le navigateur supprime tous les en-têtes qui ne sont pas autorisés par le service.

Assurez-vous que le service utilise l'option Contrôle d'accès - Autoriser les en-têtes l'en-tête ! Voilà ce que j'ai appris

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X