JQuery получает данные об ошибке XHR
Если я сделаю запрос AJAX jquery, который будет успешным, я верну свои данные JSON. Однако, если я сделаю запрос, и я получу что-то другое, кроме кода ответа 200, я не могу вернуть данные в обратном вызове Jquery. Мне нужны данные, так как у них есть описание данных.
success: function (data, tst, xhr) {
$.log('XHR OK');
},
error: function (xhr, tst, err) {
$.log('XHR ERROR ' + XMLHttpRequest.status);
},
Любые идеи?
Спасибо
Ответы
Ответ 1
В:
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
Приветствия.
Ответ 2
Попробуйте 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.