【发布时间】:2014-12-04 08:55:55
【问题描述】:
我正在使用带有 jQuery 的 jsonp ajax 请求来发送一些数据。当由于某种原因无法处理此数据时,我想返回一个不是 200 的 http 状态的结果。这样我可以使用我的访问日志来解析它们以进行统计。
不幸的是,当状态码不是 200 时,我没有得到任何响应,尽管 jQuery 回调在响应正文中(当我检查 firebug 时)。有没有办法捕捉响应?
$.ajax({
type: 'GET',
url: '{{ sendMsgUrl }}',
async: false,
data: { 'form': formData },
dataType: 'jsonp',
success: function(json2) {
if (json2.status == 'ok')
// do stuff
else {
// output error
};
},
error: function(xhr, status, error) {
// this doesn't work: it never gets here
alert(xhr.responseText);
var json2 = eval("("+xhr.responseText+")");
}
}).fail(function(jqXhr) {
// never gets here either
alert('status '+jqXhr.responseJSON);
});
【问题讨论】:
-
我在文档中没有看到
jqXhr有字段responseJSON -
你能分享一下你遇到了什么错误
标签: javascript jquery ajax jsonp