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); }
});
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
Depuis jQuery 1.5, il y a un hash headers
que vous pouvez transmettre comme suit:
$.ajax({
url: "/test",
headers: {"X-Test-Header": "test-value"}
});
De http://api.jquery.com/jQuery.ajax :
en-têtes (ajouté 1.5): une carte de paires clé/valeur d'en-tête supplémentaires à envoyer avec la demande. Ce paramètre est défini avant l'appel de la fonction beforeSend; par conséquent, toutes les valeurs du paramètre d'en-tête peuvent être écrasées à partir de la fonction beforeSend.
$.ajax({
url: URL,
type: 'GET',
dataType: 'json',
headers: {
'header1': 'value1',
'header2': 'value2'
},
contentType: 'application/json; charset=utf-8',
success: function (result) {
// CallBack(result);
},
error: function (error) {
}
});