231 votes

Passer les en-têtes de demande dans un appel AJAX GET jQuery

J'essaie de transmettre des en-têtes de requête dans un AJAX GET à l'aide de jQuery. Dans le bloc suivant, "data" transmet automatiquement les valeurs dans la chaîne de requête. Existe-t-il un moyen de transmettre ces données dans l'en-tête de la demande?

 $.ajax({
         url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
         data: { signature: authHeader },
         type: "GET",
         success: function() { alert('Success!' + authHeader); }
      });
 

Ce qui suit n'a pas fonctionné non plus

 $.ajax({
         url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
         beforeSend: { signature: authHeader },
         async: false,                    
         type: "GET",
                    success: function() { alert('Success!' + authHeader); }
      });
 

374voto

Lukas Points 3959

Comme de jQuery 1.5, il y a un headers de hachage, vous pouvez passer comme suit:

$.ajax({
    url: "/test",
    headers: {"X-Test-Header": "test-value"}
});

À partir de http://api.jquery.com/jQuery.ajax:

les en-têtes (ajouté 1.5): Une carte d'en-tête supplémentaire de paires clé/valeur à envoyer avec la demande. Ce paramètre est défini avant le beforeSend fonction est appelée; par conséquent, toutes les valeurs dans les en-têtes de réglage peut être modifié à partir de l'intérieur de la beforeSend fonction.

273voto

Adam Points 14766

Utilisez beforeSend :

 $.ajax({
         url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
         data: { signature: authHeader },
         type: "GET",
         beforeSend: function(xhr){xhr.setRequestHeader('X-Test-Header', 'test-value');},
         success: function() { alert('Success!' + authHeader); }
      });
 

http://api.jquery.com/jQuery.ajax/

http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader-method

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