如何使用jQuery.Ajax访问JSON响应400错误?

Tho*_* II 9 javascript jquery

在jQuery中,我正在向服务器提交表单.当出现验证错误时,我从服务器收到400错误,并且文档正文是有效的JSON.我想知道如何访问从服务器返回的数据.

我永远不会调用jQuery.Ajax对象上的.error回调函数,所以我使用的是.statusCode {400}函数.这运行得很好,但是没有一个参数包含响应主体.

Ste*_*ven 7

如果HTTP状态不是2xx,某些浏览器的XHR实现拒绝提供响应主体.在API设计中我无法控制我的客户端的做法是做一些像返回200并以其他方式指示成功/失败/状态的事情(例如,作为JSON中的顶级属性)响应).

  • 你在这里谈论什么浏览器? (7认同)

小智 5

我尝试获得状态为400的json响应,它适用于IE7,8和9,Firefox和Chrome(Safari未经过测试).

...
error: function(xhr) {
   error(xhr.responseText);
}
...
Run Code Online (Sandbox Code Playgroud)

  • 这是我找到的最佳答案,并且可以轻松扩展以解析 JSON 响应并使用它的属性:```error: function(xhr) { toastr.info(JSON.parse(xhr.responseText).error ); }``` (2认同)