JQuery error option in $.ajax utility

The documentation indicates that the error: option function will make available: XHR instance, a status message string (in this case always error) and an optional exception object returned from the XHR instance (Book: JQuery in Action)

Using the following (in the $.ajax call) I was able to determine I had a "parsererror" and a "timeout" (since I added the timeout: option) error

error: function(request, error){}

What are other things you evaluate in the error option? do you include the optional exception object?

EDIT: one of the answers indicates all the return errors...learning more about what is of value (for debugging) in the XHR instance and exception object would be helpful

This is a complete $.ajax call:

$.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

Thanks for the input


Looking at the jQuery source code, there are four returned statuses, in additon to success :

  • timeout - when your specified timeout is exceeded
  • error - http error, like 404
  • notmodified - when requested resource was not modified since last request
  • parsererror - when an xml/json response is bad

  • I find the request more useful than the error.

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

    xhr is XmlHttpRequest.
    readyState values are 1:loading, 2:loaded, 3:interactive, 4:complete.
    status is the HTTP status number, ie 404: not found, 500: server error, 200: ok.
    responseText is the response from the server - this could be text or JSON from the web service, or HTML from the web server.


    This is an aside, but I think there's a bug in the code you submitted. The line:

     if (error = "timeout") {
    

    should have more equals signs in it:

     if (error == "timeout") {
    
    链接地址: http://www.djcxy.com/p/96460.html

    上一篇: 后跟api请求只有jQuery

    下一篇: $ .ajax实用程序中的JQuery错误选项