如何为不同的 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);
}
});
然后,当您想使用 a 覆盖时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"} ) );
这当然可以包装在一个私有方法中以供重用。
您是否阅读过 jquery.com 上有关 .ajax() 的文档?令人惊讶的是它需要多少不同的设置(作为参数)。
您很有可能可以在 .ajax() 中执行您想要的操作,而无需调用 .ajaxSetup()。