我需要创建一个扩展jQuery
$.ajax
个回调的函数。
具体而言,我需要添加默认代码到每个beforeSend()
,complete()
回调。
例如,我试过这个:
var custom = {};
var tempAjax = function(options,callback){
var defaults = { };
$.extend(options,defaults);
return $.ajax(options);
}
custom.ajax = function() {
if ( !arguments[0].beforeSend ) {
arguments[0].beforeSend = function() {
// my default code
}
}
return tempAjax.apply($, arguments).then(function(value) {
// my default code
}).fail( function() {
// my default code
});
}
除了我定义的默认代码之外,每个其他$.ajax
调用仍然会运行自己的特定代码,这一点很重要。
所以下面的代码:
custom.ajax({
url: url,
data: data,
dataType: type,
beforeSend: function(result){
// other code
},
success: function(result){
// other code
},
error: function (XMLHttpRequest, textStatus, errorThrown) {
// other code
},
complete: function () {
// other code
}
});
对于每种回调类型,都会运行// other code
和 // my default code
。
我不确定我的解决方案是否按预期工作。 你能帮帮我吗?
修改:custom.ajax
使用默认代码也很重要,而且标准$.ajax
调用将继续正常运行。
由于
答案 0 :(得分:3)
如果执行顺序无关紧要,那么我相信您可以为beforeSend,success,error和complete案例使用jQuery的全局事件处理程序。
我的理解是,之后所有$ .ajax调用都会被调用...
希望这有帮助!