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