无论如何,我的网络服务器都会向任何ajax请求返回json响应。如果响应成功,它将返回状态代码为200的json。如果出现错误,它将返回状态代码为400或500的json。我需要获取该信息,即使请求是400或500,因为json响应带有错误消息,需要呈现给用户。
问题是,如果状态代码不是200,那么jquery $ .ajax函数不会让你访问响应对象,对吗?有没有办法做到这一点?
答案 0 :(得分:3)
您可以覆盖内部使用的jQuery.httpSuccess
method以确定请求是否成功,例如:
jQuery.httpSuccess = function() { return true; }
这将使您的success
处理程序在400/500范围内的状态代码上执行。
注意:以后可能会更改为jQuery.ajax.httpSuccess
。
答案 1 :(得分:2)
确实如此。仅在调用成功时调用success
函数,但在出现错误时调用error
回调 - 包括200以外的HTTP状态。
$.ajax({..., error: function(XMLHttpRequest, textStatus, errorThrown) { ... } });
答案 2 :(得分:0)
您可以轻松找回它:
$.ajax({
// your options
success: function(data, xhr) {
alert(xhr.status);
}
});