jquery – 使用.ajaxError并在$.ajax()中设置一个错误函数

前端之家收集整理的这篇文章主要介绍了jquery – 使用.ajaxError并在$.ajax()中设置一个错误函数前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在重写所有我的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!");
    }
});

猜你在找的jQuery相关文章