JQuery AJAX с не 200 ответами - PullRequest
2 голосов
/ 04 мая 2011

Как мне добиться успеха * Стрелять по всем кодам состояния?

$.ajax({
    url: "/"
    , dataType: 'json'
    , type: 'POST'
    success: function (data) {
        alert('all good');
    }
});

* заметьте, мне все равно, срабатывает ли метод "success", я просто хочу, чтобы ответный объект был разобран как JSON.

Моим объектом ответа для 400 может быть какой-то JSON с подробной информацией о том, почему это был неверный запрос, есть ли какие-то настройки, чтобы заставить это работать из коробки с jQuery? Или я должен это сделать вручную?

Спасибо

1 Ответ

4 голосов
/ 04 мая 2011

Используйте complete: function () { } вместо success. В этом случае результирующие данные не будут проанализированы jQuery, но вы можете сделать это самостоятельно, выполнив $.parseJSON() для объекта XHR responseText:

$.ajax({
    url: "/"
    , dataType: 'json'
    , type: 'POST'
    complete: function (xhrObj) {
        var data = $.parseJSON(xhrObj.responseText || "");
        alert('all good');
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...