異なるAJAXリクエストに対して異なる設定(jQuery.ajaxSetup())を設定するにはどうすればよいですか?
私がやりたいのは、各AJAX呼び出しが異なるajaxSetup()を実行するように「リンク」することです。
ポイントは$.ajaxSetup()
、グローバルスケールでjQueryを介してすべてのajax呼び出しのデフォルト設定を作成することです。設定を上書きしたい場合は、特定のajax呼び出しで設定を指定するだけです。
たとえば、コードの早い段階で、$.ajaxSetup()
:を定義します。
$.ajaxSetup({
type: 'POST'
, cache: false
, contentType: 'application/json'
, dataType: 'json'
, error: function (a, b, c) {
//default error handling
console.log(a, b, c);
}
});
次に、オーバーライドする場合、たとえば、を使用してGET
、次のようにします。
$.ajax(myUrl, {
type: 'GET'
, data: myData
});
$ .extendを使用して、入力を設定したいくつかの異なるデフォルトにマージしたい場合があります。例えば:
var settings1 = {
type:"GET",
url:"something.php"
};
var settings2 = {
type:"POST",
url: "somethingelse.php"
}
$.ajax($.extend(true, settings1, {
data: {key: val}
}));
$.ajax($.extend(true, settings2, {
data: {key: val}
}));
個別のオブジェクトを作成し、それらのオブジェクトを使用して、に渡すオプションを作成できます$.ajax
。
var ajaxSetup1 = {
type: "POST",
dataType: "html"
}
$.ajax( $.extend( ajaxSetup1, {"url","mypage.php"} ) );
もちろん、それを再利用するためのプライベートメソッドにラップすることもできます。
.ajax()に関するjquery.comのドキュメントを読んだことがありますか?(パラメータとして)どれだけ異なる設定が必要かは驚くべきことです。
.ajaxSetup()を呼び出さなくても、.ajax()内でやりたいことができる可能性は大いにあります。