私はjQueryを使ってAJAXGETでリクエストヘッダを渡そうとしています。次のブロックで、 "data"はクエリ文字列の値を自動的に渡します。代わりにリクエストヘッダでそのデータを渡す方法はありますか?
$.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); }
});
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
JQuery 1.5以降、次のように渡すことができるheaders
ハッシュがあります。
$.ajax({
url: "/test",
headers: {"X-Test-Header": "test-value"}
});
Http://api.jquery.com/jQuery.ajaxから:
headers(1.5を追加):リクエストとともに送信する追加のヘッダーキー/値ペアのマップ。この設定は、beforeSend関数が呼び出される前に設定されます。したがって、ヘッダー設定内の値は、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) {
}
});