jQuery.ajaxPrefilter() に登録された関数で jqXHR.setRequestHeader() を介してすべての Ajax リクエストにカスタム XID ヘッダーを追加するシステム内にある JS スクリプトを作成しています。
私のスクリプトでは、このカスタム XID ヘッダーを許可するように Access-Control-Allow-Headers が設定されていないサード パーティのサイトに Ajax リクエストを送信する必要があります。
私には3つのオプションがあるようです:
- $.ajax() の beforeSend 関数でその XID ヘッダーを削除する方法を見つけてください。これは ajaxPrefilter() 関数の後に呼び出されることが確認されています。
- $.ajax() を完全に使用するのをやめて、自分で Ajax のものを書くだけです。
- カスタム XID ヘッダーを受け入れるシステムのバックエンドを $.ajax() にポイントさせ、cURL を介してサード パーティ サイトへの要求を実行します。
簡単な方法がある場合は、オプション #1 が推奨されます。これは、最もクリーンで最速のルートになるためです。方法がわかりません。
このようにオーバーライドしようとしましたが、うまくいきませんでした:
beforeSend: function(jqXHR, settings) {
jqXHR.setRequestHeader('custom-xid-header', null);
}
何か案は?