这可能很奇怪,但我正在寻找的是如何仅在特定对象中使jQuery.ajaxSetup()
的范围。让我举个例子,我有两个对象obj_1
和obj_2
。我想以这样的方式编写ajaxSetup,使得我在对象内的所有ajax调用都将使用一组参数,而我在第二个对象中的所有调用将使用其他一组参数。
例如
var obj_1 = {
my_func : function(){
$.ajax({
success : function(){
// do something
// all ajax calls in this object should use one set of params (type,dataType,headers etc)
}
})
}
};
var obj_2 = {
my_func : function(){
$.ajax({
success : function(){
// do something
// all ajax calls in this object should use different params (type,dataType,headers etc)
}
})
}
};
我想这样做,这样我就不必在每个ajax调用中写下所有params。
答案 0 :(得分:3)
最好的办法是创建一个供对象使用的函数,并在执行ajax调用时设置参数。该对象使用该函数而不是直接调用ajax
。例如,一个简单的包装函数。
或者,您可以在每个重用的对象上使用standardParams
属性,也许混合使用特定于调用的参数。类似的东西:
var obj_x = {
standardParams: {
// These are the params that don't vary
dataType: "json" // Or whatever
},
your_func: function() {
$.ajax($.extend({}, this.standardParams, {
// These are the params that vary
success: function() { ... }
}));
}
};
(注意使用jQuery.extend
来混合每个呼叫和标准参数。)
当然,您可以使用两者的组合(包装函数,它在封面下使用standardParams
属性)。