我正在重写我所有的ajax调用以使用jquery方法(更干净的代码!)并声明了一个默认的ajaxError函数,如下所示:
$(document).ajaxError(function(event, request, settings){
alert("there was some error.. boo");
});
我的ajax调用具有自己定义的错误函数,我不希望上面的默认值为:
$.ajax({ url: url,
success: function(data){
// do something
},
error: function (r, textStatus, errorThrown) {
// let's do something here regarding the error
alert("Oh no! Something went terribly wrong in here!");
// just trying this to see if it will stop any other events (ie default ajaxError)
event.stopImmediatePropagation();
}
});
但是,现在我有几个ajax调用,我想在ajax调用中声明一个错误函数。我希望通过在ajax调用中声明一个错误函数,它将替换我定义的默认错误调用。但这似乎并非如此,因为我继续首先得到我的ajax函数错误调用,然后我也看到上面的代码执行。
我尝试从我的ajax错误函数中调用event.stopImmediatePropagation(),希望它会阻止进一步的事件触发(即:默认错误事件)但除了在firefox中告诉我“事件”是什么之外什么也没做未定义。
有什么想法吗?我希望我不必经历并为每个ajax调用定义一个错误函数。如果归结为那,我会的。我想问一下。
谢谢, 马特
答案 0 :(得分:9)
global
option上的$.ajax()
用于确定是否执行global AJAX event handlers,只需将其设置为false
,如下所示:
$.ajax({
url: url,
global: false,
success: function(data){
// do something
},
error: function (r, textStatus, errorThrown) {
alert("Oh no! Something went terribly wrong in here!");
}
});