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

前端之家收集整理的这篇文章主要介绍了jquery – 如何处理AJAX调用中的错误?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
假设我有以下jQuery AJAX调用
$.ajax({
   type: "POST",url: "MyUrl",data: "val1=test",success: function(result){
        // Do stuff
   }
 });

现在,当我进行这个AJAX调用时,我希望服务器端代码运行一些错误处理检查(例如,用户是否仍然登录,他们有权使用此呼叫,数据是否有效等)。如果检测到错误,我该如何将该错误信息提示回客户端?

我最初的想法是返回一个包含两个字段的JSON对象:error和errorMessage。这些字段将在jQuery AJAX调用中进行检查:

$.ajax({
   type: "POST",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 header information

错误4xx,5xx4xx代码适用于客户端似乎有错误的情况,以及服务器知道服务器发生错误的情况下的5xx代码。一般来说,不可能区分这些情况,所以区别只是信息。身体部分可以包含描述人类可读形式的错误的文档。该文档采用MIME格式,并且只能以text / plain,text / html格式或者在请求中指定为可接受的格式。

猜你在找的jQuery相关文章