1. ホーム
  2. ジャバスクリプト

[解決済み] jsまたはjQueryでajaxリクエストにカスタムHTTPヘッダを追加するにはどうすればよいですか?

2022-03-26 18:58:25

質問

JavaScriptまたはjQueryを使用してカスタムHTTPヘッダーを追加または作成する方法を知っている人はいますか?

どのように解決するのですか?

必要なものによって、いくつかの解決策があります。

をしたい場合 個々のリクエストにカスタムヘッダ(またはヘッダのセット)を追加する を追加するだけです。 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' } });

編集する(詳細)。 一つ注意しなければならないのは ajaxSetup の場合、デフォルトのヘッダは1セットしか定義できず、また、1つの beforeSend . もし ajaxSetup を複数回実行すると、最後のヘッダセットだけが送信され、最後の送信前コールバックだけが実行されます。