如果我做了一个成功的jquery AJAX请求,我会收回我的JSON数据。但是,如果我发出请求并且我得到了200响应代码以外的其他东西,我无法在Jquery回调中获取数据。我需要数据,因为它有关于数据的描述。
success: function (data, tst, xhr) {
$.log('XHR OK');
},
error: function (xhr, tst, err) {
$.log('XHR ERROR ' + XMLHttpRequest.status);
},
有什么想法吗?
由于
答案 0 :(得分:18)
在:
error: function (xhr, tst, err) {
$.log('XHR ERROR ' + XMLHttpRequest.status);
},
你可以使用
error: function (XMLHttpRequest, textStatus, errorThrown) {
$.log('XHR ERROR ' + XMLHttpRequest.status);
return JSON.parse(XMLHttpRequest.responseText);
},
在发生错误时获取JSON响应。
XMLHttpRequest.responseText
干杯。
答案 1 :(得分:0)
试试jQuery JSONP plugin。它为JSON请求添加了一个错误回调,如:
$.jsonp({
url: "Your URL",
data: {data: "Some Data"},
dataType: 'jsonp',
timeout: 2000,
success: function(data, status) {
// Do something with data here
},
error: function(xhr, text_status){
// Handle the server error
}
});
它使用超时来等待服务器。不幸的是,没有其他方法可以告诉服务器是否响应了200响应以外的其他内容。