Пропустить заголовки запроса в вызове JQuery AJAX GET
Я пытаюсь передать заголовки запросов в AJAX GET с помощью jQuery. В следующем блоке "данные" автоматически передают значения в запросе. Есть ли способ передать эти данные в заголовке запроса?
$.ajax({
url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
data: { signature: authHeader },
type: "GET",
success: function() { alert('Success!' + authHeader); }
});
Следующие действия не работали:
$.ajax({
url: "http://localhost/PlatformPortal/Buyers/Account/SignIn",
beforeSend: { signature: authHeader },
async: false,
type: "GET",
success: function() { alert('Success!' + authHeader); }
});
Ответы
Ответ 1
Используйте 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
Ответ 2
Как и в jQuery 1.5, существует хэш headers
, который вы можете передать следующим образом:
$.ajax({
url: "/test",
headers: {"X-Test-Header": "test-value"}
});
Из http://api.jquery.com/jQuery.ajax:
Заголовки (добавлено 1.5): Карта дополнительных пар ключ/значение заголовка для отправки вместе с запросом. Этот параметр устанавливается до вызова функции beforeSend; поэтому любые значения в настройках заголовков могут быть перезаписаны из функции beforeSend.
Ответ 3
$.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) {
}
});