我需要创建一个扩展 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
}
});
将为每种回调类型运行//其他代码
和//我的默认代码
。
我不确定我的解决方案是否按预期工作。 你能帮我吗?
编辑:同样重要的是,默认代码将由 custom.ajax
使用,而不是由标准 $.ajax
调用使用将继续正常运行。
谢谢
最佳答案
如果执行顺序并不重要,那么我相信您可以将 jQuery 的全局事件处理程序用于 beforeSend , success , error和 complete案例。
我的理解是,之后所有 $.ajax 调用都会调用这些...
希望这有帮助!
关于javascript - 创建自定义函数来扩展默认的 jQuery $.ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42007666/