如何为不同的AJAX请求设置不同的设置(jQuery.ajaxSetup())?
我想做的是“链接”每个AJAX调用做不同的ajaxSetup()。
答案 0 :(得分:6)
$.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
});
答案 1 :(得分:2)
也许您只想使用$.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}
}));
答案 2 :(得分:1)
您可以创建单独的对象,并使用这些对象创建传递到$.ajax
的选项。
var ajaxSetup1 = {
type: "POST",
dataType: "html"
}
$.ajax( $.extend( ajaxSetup1, {"url","mypage.php"} ) );
当然可以将其包装在私人方法中以供重复使用。
答案 3 :(得分:0)
您是否阅读过有关.ajax()的jquery.com文档?令人惊讶的是它需要多少不同的设置(作为参数) 你很有可能在.ajax()中做你想做的事情,而不必调用.ajaxSetup()。