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 :
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