Jquery $. Get для чтения статуса заголовка при ошибке - PullRequest
0 голосов
/ 18 ноября 2011

Я пишу REST API.Он возвращает статус заголовка 400 при ошибке.

Однако на стороне AJAX я не смог получить возвращенный объект jqxhr.

$.get('site.php', function(data, status, jqxhr) function(data) {
    //...
}).error(console.log(jqxhr));

возвращает Uncaught ReferenceError: jqxhr is not defined.
В консоли инспектора отображается 400 (неверный запрос) для запроса на получение.

Как получить текст неверного запроса?

Я мог бы возвратить текстовую ошибку в данных, передав ее в статусе заголовка 200, но это неправильный подход, я прав?

1 Ответ

2 голосов
/ 18 ноября 2011

Функция error хочет функцию обратного вызова, но вы выполняете console.log(jqxhr) и пытаетесь передать ее возвращаемое значение error в качестве обратного вызова, вот откуда вы и получаете сообщение «jqxhr не определен».

Вы хотите что-то вроде этого:

$.get('site.php', function(data, status, jqxhr) function(data) {
    //...
}).error(function(jqXHR, textStatus, errorThrown) {
    // Do something interesting.
});

Вы также должны использовать fail вместо error, так как error уходит :

Примечание об устаревании: Обратные вызовы jqXHR.success(), jqXHR.error() и jqXHR.complete() будут исключены в jQuery 1.8. Чтобы подготовить код для их возможного удаления, используйте jqXHR.done(), jqXHR.fail() и jqXHR.always().

...