包装jQuery的$.ajax()方法来定义全局错误处理

前端之家收集整理的这篇文章主要介绍了包装jQuery的$.ajax()方法来定义全局错误处理前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
分析如 this one这样的问题,我正在寻找包装jQuery的$ .ajax()方法,以便我可以在一个位置提供错误处理,然后由所有应用程序的远程调用自动使用。

简单的方法是简单地创建一个新的名称,类似于$ .get()和$ .post()实现外观到$ .ajax()。但是,我希望重用名称$ .ajax(),以便我们可以使用标准的jQuery语法来保留我们的其余代码,从而隐藏我们添加了自己的错误处理的事实。这是实际的还是/或很好的实现,或者可能是一个可怕的想法?

编辑:迄今为止的响应表明.ajaxError()是要走的路。我知道这会捕获400和500级错误,但是有没有办法(用这个事件处理程序或其他方式)捕获302重定向?我正在尝试处理重定向登录页面的响应,但是我们希望在XHR请求时拦截重定向,从而允许用户取消操作,而不是强制自动转发。

解决方法

你可能想看看 $.ajaxError
$(document).ajaxError(function myErrorHandler(event,xhr,ajaxOptions,thrownError) {
  alert("There was an ajax error!");
});

jQuery提供a whole bunch of other ways to attach global handlers

要回答你的编辑,你可以用$ .ajaxSuccess捕获成功的ajax请求,你可以用$ .ajaxComplete来捕获所有的(成功和失败的)。您可以从xhr参数获取响应代码,如

$(document).ajaxComplete(function myErrorHandler(event,thrownError) {
  alert("Ajax request completed with response code " + xhr.status);
});
原文链接:https://www.f2er.com/jquery/182237.html

猜你在找的jQuery相关文章