当前位置:  开发笔记 > 前端 > 正文

$ .ajax实用程序中的JQuery错误选项

如何解决《$.ajax实用程序中的JQuery错误选项》经验,为你挑选了2个好方法。

文档指出error:option函数将可用:XHR实例,状态消息字符串(在这种情况下总是错误)和从XHR实例返回的可选异常对象(Book:JQuery in Action)

使用以下(在$ .ajax调用中)我能够确定我有一个"parsererror"和一个"超时"(因为我添加了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

感谢您的投入



1> Matt..:

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

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

xhr是XmlHttpRequest.
readyState值为1:loading,2:loaded,3:interactive,4:complete.
status是HTTP状态号,即404:未找到,500:服务器错误,200:ok.
responseText是服务器的响应 - 可以是来自Web服务的文本或JSON,也可以是来自Web服务器的HTML.



2> Zach..:

查看jQuery源代码,除了成功之外,还有四种返回状态:

超时 - 超过指定的超时时间

错误 - http错误,如404

notmodified - 自上次请求后未请求修改请求的资源

parsererror - 当xml/json响应错误时


当dataType:"json"和json错误形成时
推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有