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

您如何处理AJAX调用中的错误?

苏德容
2023-03-14
问题内容

假设我有以下jQuery AJAX调用:

$.ajax({
   type: "POST",
   url: "MyUrl",
   data: "val1=test",
   success: function(result){
        // Do stuff
   }
 });

现在,当进行此AJAX调用时,我希望服务器端代码通过一些错误处理检查来运行(例如,用户是否仍在登录,他们是否有权使用此调用,数据是否有效,等等)。如果检测到错误,如何将错误消息冒泡回客户端?

我最初的想法是返回一个带有两个字段的JSON对象:error和errorMessage。然后将在jQuery AJAX调用中检查以下字段:

$.ajax({
   type: "POST",
   url: "MyUrl",
   data: "val1=test",
   success: function(result){
       if (result.error == "true") 
       {
           alert("An error occurred: " & result.errorMessage);
       }
       else 
       {
           // Do stuff
       }
   }
 });

这对我来说有点笨拙,但确实有效。有更好的选择吗?


问题答案:

就个人而言,我的库中的代码与以下代码类似。

$.ajaxSetup({
    error: function(xhr){
        alert('Request Status: ' + xhr.status + ' Status Text: ' + xhr.statusText + ' ' + xhr.responseText);
    }
});

jQuery docs Ajax /
jQuery.ajaxSetup

将错误从服务器端冒泡(使用php)到客户端的最佳方法是通过Ajax请求在400的某个位置发送标头(始终与错误相关)。一旦Ajax请求收到此请求,它将触发您的错误功能。这也意味着您不必定义错误:在每个$
.ajax调用中调用。

header('HTTP/1.0 419 Custom Error');

引用w3.org标头信息

错误4xx,5xx 4xx代码用于客户端似乎已出错的情况,而5xx代码用于服务器知道服务器已出错的情况。
通常无法区分这些情况,因此区别仅是信息性的。正文部分可能包含以人类可读形式描述错误的文档。该文档为MIME格式,并且只能是text / plain,text
/ html或请求中指定的可接受格式之一。



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

  • 问题内容: 我的.xhtml页面中有一个: 它只是在进行Ajax调用。如何在Ajax调用过程中检测到(客户端/浏览器的)互联网连接问题,超时,会话超时,服务器端异常,崩溃等情况,以便向用户显示有用的消息? 是否处理所有这些属性?如果没有,那又如何?:)默认超时时间是多少? 任何帮助表示赞赏,谢谢。 问题答案: onerror调用此函数: onerror(xhr,status,exception)-

  • 问题内容: 我的网络服务返回一个JSON对象,如下所示 即,当我将此地址放入chrome浏览器中时,我可以到达上面。 我正在尝试在浏览器中阅读此内容,以便可以创建一个下拉选项…但是从以下代码开始我一无所获: 我总是在警报框中。我用fiddler2再次检查了Web服务请求/响应是否正常,我什至可以拦截Web服务和浏览器之间的json对象。 我也试过 我又得到了空。 我已经看过Ajax要求的json响

  • 我在运行Jhipster时遇到了问题。我有一个工作的应用程序,它与嵌入式tomcat服务器运行良好。但是,当我将mvn-pprod之后的war文件部署到外部tomcat服务器时,主url显示以下错误。我没有对html5等做任何明确的更改。 我的主要疑问是,如何调试此场景?在控制台或服务器日志中看不到任何堆栈跟踪。我正在访问war的URL:project1-0.0.1-snapshot.war

  • 原因:org.apache.poi.openxml4j.exceptions.OLE2NotOfficeXMLFileException:提供的数据似乎是OLE2格式的。您正在调用POI中处理OOXML(Office Open XML)文档的部分。您需要调用POI的不同部分来处理该数据(例如HSSF而不是XSSF) 我到底需要改变什么?

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