如何让 success* 触发所有状态代码?
$.ajax({
url: "/"
, dataType: 'json'
, type: 'POST'
success: function (data) {
alert('all good');
}
});
*
注意,我不在乎它是否触发“成功”方法,我只想将响应实体解析为 JSON。
我的 400
响应实体可能是一些 JSON,其中包含有关为什么它是错误请求的详细信息,是否有一些设置可以使此功能与 jQuery 开箱即用?还是我必须用手卷这个?
谢谢
最佳答案
使用complete: function () { }
,而不是success
。在这种情况下,生成的数据不会由 jQuery 解析,但您可以通过对 XHR 对象的 responseText
执行 $.parseJSON()
来自行解析:
$.ajax({
url: "/"
, dataType: 'json'
, type: 'POST'
complete: function (xhrObj) {
var data = $.parseJSON(xhrObj.responseText || "");
alert('all good');
}
});
关于具有非 200 个响应的 jQuery ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5884286/