代码之家  ›  专栏  ›  技术社区  ›  Jay Corbett

$.Ajax实用程序中的jquery错误选项

  •  33
  • Jay Corbett  · 技术社区  · 17 年前

    文档指出,error:option函数将使xhr实例、状态消息字符串(在本例中始终为error)和从xhr实例返回的可选异常对象(book:jquery-in-action)可用。

    使用下面的代码(在$.ajax调用中),我可以确定我有一个“parserror”和一个“timeout”(自从我添加了timeout:option)错误。

    error: function(request, error){}
    

    您在错误选项中评估的其他内容是什么?是否包括可选的异常对象?

    编辑: 其中一个答案表示所有返回错误……进一步了解XHR实例和异常对象中的值(用于调试)将很有帮助

    这是一个完整的$.Ajax调用:

    $.ajax({
     type: "post",
     url: "http://myServer/cgi-bin/broker" ,
     dataType: "text",
     data: {
     '_service' : 'myService',
     '_program' : 'myProgram',
     'start' : start,
     'end' : end
     },
     beforeSend: function() {
      $("#loading").removeClass("hide");
     },
     timeout: 5000,
     error: function(request,error) {
      $("#loading").addClass("hide");
      if (error == "timeout") {
       $("#error").append("The request timed out, please resubmit");
      }
      else {
       $("#error").append("ERROR: " + error);
      }
      },
      success: function(request) {
       $("#loading").addClass("hide");
       var t = eval( "(" + request + ")" ) ;
      } // End success
    }); // End ajax method
    

    谢谢你的意见

    5 回复  |  直到 17 年前
        1
  •  22
  •   Zach    17 年前

    查看jquery源代码,除了 成功 :

    • 超时 -当您指定 超时
    • 错误 -HTTP错误,如404
    • 未修改的 -请求时 自上次以来未修改资源 请求
    • 帕塞尔误差 -当XML/JSON响应为 坏的
        2
  •  43
  •   Matt    16 年前

    我发现请求比错误更有用。

    error:function(xhr,err){
        alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
        alert("responseText: "+xhr.responseText);
    }

    XHR 是xmlhttpRequest。
    就绪状态 值为1:加载,2:加载,3:交互, 4:完成 .
    地位 是HTTP状态号,即404:未找到,500:服务器错误, 200:OK .
    响应集 是来自服务器的响应——可以是来自Web服务的文本或JSON,也可以是来自Web服务器的HTML。

        3
  •  4
  •   davegurnell    16 年前

    这是一个旁白,但我认为你提交的代码中有一个错误。线:

     if (error = "timeout") {
    

    应该有更多的等号:

     if (error == "timeout") {
    
        4
  •  1
  •   Jataro    17 年前

    传递给错误函数的第二个参数是字符串“timeout”“parserror”“error”或“notmodified”。第三个是异常对象。此对象有助于调试。

        5
  •  0
  •   Tomasz Tybulewicz    17 年前

    你确定回答正确吗?分析错误意味着行中正在计算的数据有问题 var t = eval( "(" + request + ")" ) ;