Jquery获取有关XHR错误的数据

时间:2010-10-20 13:57:54

标签: javascript jquery json xmlhttprequest

如果我做了一个成功的jquery AJAX请求,我会收回我的JSON数据。但是,如果我发出请求并且我得到了200响应代码以外的其他东西,我无法在Jquery回调中获取数据。我需要数据,因为它有关于数据的描述。

success: function (data, tst, xhr) {
    $.log('XHR OK');
},
error: function (xhr, tst, err) {
    $.log('XHR ERROR ' + XMLHttpRequest.status);
},

有什么想法吗?

由于

2 个答案:

答案 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响应以外的其他内容。