JavaScript または jQuery を使用してカスタム HTTP ヘッダーを追加または作成する方法を知っている人はいますか?
ベストアンサー1
必要なものに応じていくつかのソリューションがあります...
個々のリクエストにカスタム ヘッダー (またはヘッダー セット) を追加する場合は、次のプロパティを追加するだけですheaders
。
// Request with custom header
$.ajax({
url: 'foo/bar',
headers: { 'x-my-custom-header': 'some value' }
});
すべてのリクエストにデフォルトのヘッダー(またはヘッダーのセット)を追加する場合は、次を使用します$.ajaxSetup()
。
$.ajaxSetup({
headers: { 'x-my-custom-header': 'some value' }
});
// Sends your custom header
$.ajax({ url: 'foo/bar' });
// Overwrites the default header with a new header
$.ajax({ url: 'foo/bar', headers: { 'x-some-other-header': 'some value' } });
すべてのリクエストにヘッダー(またはヘッダーのセット)を追加する場合は、次beforeSend
のようにフックを使用します$.ajaxSetup()
。
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('x-my-custom-header', 'some value');
}
});
// Sends your custom header
$.ajax({ url: 'foo/bar' });
// Sends both custom headers
$.ajax({ url: 'foo/bar', headers: { 'x-some-other-header': 'some value' } });
編集 (詳細情報):注意すべき点の 1 つは、 ではajaxSetup
デフォルト ヘッダーのセットを 1 つしか定義できず、 は 1 つしか定義できないことですbeforeSend
。 を複数回呼び出すとajaxSetup
、最後のヘッダー セットのみが送信され、最後の送信前コールバックのみが実行されます。