получить ответ об ошибке от ajax-запроса в jquery - PullRequest
0 голосов
/ 18 октября 2010

Мой веб-сервер возвращает ответ json на любой запрос ajax, не смотря ни на что.Если ответ был успешным, он возвращает json с кодом состояния 200. Если что-то не так, он возвращает json с кодом состояния 400 или 500. Мне нужно получить эту информацию, даже если запросэто 400 или 500, потому что в ответе json есть сообщение об ошибке, которое нужно представить пользователю.

Проблема в том, что функция jquery $ .ajax не дает вам доступ к объекту ответаесли код состояния отличается от 200, правильно?Есть ли способ сделать это?

Ответы [ 3 ]

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

Вы можете переопределить метод jQuery.httpSuccess , используемый внутри, чтобы определить, успешен ли запрос, например:

jQuery.httpSuccess = function() { return true; }

Это позволит обработчику success выполняться дажекоды состояния в диапазоне 400/500.

Примечание: может измениться на jQuery.ajax.httpSuccess позже.

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

Конечно, это так.Функция success вызывается только при успешном вызове, но обратный вызов error вызывается при возникновении ошибки - включая состояние HTTP, отличное от 200.

$.ajax({..., error: function(XMLHttpRequest, textStatus, errorThrown) { ... } });
0 голосов
/ 18 октября 2010

Вы можете легко получить его:

$.ajax({
    // your options
    success: function(data, xhr) {
      alert(xhr.status);
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...