当前位置: 首页 > 面试题库 >

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

墨财
2023-03-14
问题内容

分支出类似这样的问题,我希望包装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提供了许多其他方式来附加全局处理程序。

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

$(document).ajaxComplete(function myErrorHandler(event, xhr, ajaxOptions, thrownError) {
  alert("Ajax request completed with response code " + xhr.status);
});


 类似资料:
  • 问题内容: 当我的网站是100%jQuery时,我曾经这样做: 为401错误设置全局处理程序。现在,我将angularjs与和一起使用,以向服务器发送(REST)请求。有什么办法可以类似地用角度设置全局错误处理程序吗? 问题答案: 我还在建立一个带有angular的网站,并且遇到了同样的障碍来处理全局401。当我遇到此博客文章时,我最终使用了HTTP拦截器。也许您会发现它和我一样有用。 “基于An

  • 问题内容: 我已经在这里搜索了问题,但是我对如何在jQuery的AJAX中使用错误处理没有很好的了解(我是菜鸟,所以这真的没有意义。) 有人可以向初学者描述吗?我目前正在通过AJAX将信息发布到PHP脚本,但希望允许jQuery识别从脚本返回的数据是错误还是成功。 谢谢!戴夫 问题答案: 从ajax调用返回的错误是从不成功的页面加载返回结果。可能是您的php页面返回了一个有效的页面,但是结果不是您

  • 问题内容: 如何将自定义错误信息从ASP.NETMVC3方法传递给的(或,如果需要的话)函数?理想情况下,我希望能够: 仍然在服务器上抛出错误(用于记录日志) 在客户端上检索有关错误的自定义信息 这是我的代码的基本版本: 控制器JsonResult方法 的JavaScript 我尝试过的事情(没有解决): 从块 返回错误信息 这可行,但是不能引发异常 在块中 编辑HTTP响应 然后在jQuery错

  • 本文向大家介绍Ajax犯的错误处理方法,包括了Ajax犯的错误处理方法的使用技巧和注意事项,需要的朋友参考一下 1, ajax 发送请求时状态判断 if else 语句问题。   当时输出了两个200 的状态码,然后才输出xhr.responseText, 获取到的内容。 当时很奇怪,不知道这两个200 是怎么来的?   当时尝试输出不少内容,但还是找不到原因。 只有到把else 语句中改为 co

  • 本文向大家介绍如何处理jQuery AJAX错误?,包括了如何处理jQuery AJAX错误?的使用技巧和注意事项,需要的朋友参考一下 处理jQuery AJAX错误。每当AJAX请求失败时,ajaxError(callback)方法都会附加一个要执行的函数。这是一个Ajax事件。 这是此方法使用的所有参数的描述- callback- 要执行的功能。用于该请求的XMLHttpRequest和设置将

  • 本文向大家介绍laravel框架 api自定义全局异常处理方法,包括了laravel框架 api自定义全局异常处理方法的使用技巧和注意事项,需要的朋友参考一下 api返回实现 api返回信息 1,添加异常类 2,修改laravel异常类u。。。 考虑开发配置时 以上这篇laravel框架 api自定义全局异常处理方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。