Jquery получить данные об ошибке XHR - PullRequest
12 голосов
/ 20 октября 2010

Если я сделаю JQuery-запрос AJAX, который будет успешным, я получу обратно данные JSON.Однако, если я сделаю запрос и получу что-то, кроме кода ответа 200, я не смогу вернуть данные в обратном вызове Jquery.Мне нужны данные, так как в них есть описание данных.

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

Есть идеи?

Спасибо

Ответы [ 2 ]

18 голосов
/ 21 октября 2010

В:

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

Приветствие.

0 голосов
/ 20 октября 2010

Попробуйте подключаемый модуль jQuery JSONP .Он добавляет обратный вызов ошибки в запрос 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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...