我正在重写所有我的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中告诉我,“event”是未定义的.
有任何想法吗?我希望我不必经历并定义一个错误函数到每一个ajax调用.如果归结到这一点,我会的.只是想我会问.
谢谢,
马特
解决方法
$.ajax()
上有一个
global
option,用于确定是否执行那些
global AJAX event handlers,只将其设置为false,如下所示:
$.ajax({ url: url,global: false,errorThrown) { alert("Oh no! Something went terribly wrong in here!"); } });