これは機能していないようです:
$.ajaxSetup({
headers: {
Accept: 'application/vvv.website+json;version=1 ',
Authorization: 'Token token=\"FuHCLyY46\"'
}
});
そうなると思っていただろう。これらのフィルターを特にAJAX呼び出しに追加すると機能します。すべてのAJAX呼び出しに対してグローバルにこれを実行したいと思います。
追加のテストをいくつか行い、投稿したコードは完全に機能します。パラメータの設定方法に問題がある場合は、常にbeforeSend呼び出しを行って、XML要求を自分で変更することができます。
$.ajaxSetup({
beforeSend: function (xhr)
{
xhr.setRequestHeader("Accept","application/vvv.website+json;version=1");
xhr.setRequestHeader("Authorization","Token token=\"FuHCLyY46\"");
}
});
Openメソッドにモンキーパッチを適用することで、フレームワークに依存しない方法でこれを行うこともできます。
var o = XMLHttpRequest.prototype.open;
XMLHttpRequest.prototype.open = function(){
var res = o.apply(this, arguments);
var err = new Error();
this.setRequestHeader('X-Ajax-Stack', JSON.stringify(err.stack));
return res;
}
この例では、ヘッダー経由でスタックトレース情報を送信しています。これにより、バックエンドは、jQueryを使用しないサードパーティコードからのものであっても、Ajaxリクエストの発信元を知ることができます。
(注:ヘッダーに注意してください 大きすぎる )