Какие параметры отправляются в .fail в jQuery?

107

Я не могу найти документацию о том, как называются три параметра в случае $.ajaxсбоя.

Прямо сейчас я просто использую:

.fail(function(A, B, C) {
Филипп Сенн
источник
2
Вероятно , то же самое , что передаются функции errorобратного вызова: jqXHR, textStatus, errorThrown.
Феликс Клинг,

Ответы:

93

По http://api.jquery.com/jQuery.ajax/ на failобратный вызов должен быть получение:

jqXHR, textStatus, errorThrown

То же, что error, но errorустарело:

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

Натаниосия
источник
Ох, я не заметил. Спасибо, что поделились этой частью документации. Я рад, что обратные вызовы jQuery XHR наконец совпадают с отложенными.
Michael Mior
2
О, но у метода ajaxError есть событие jqXHR, ajaxSettings, thrownError.
Филипп Сенн,
Все они представляют собой один и тот же обратный вызов, которому передаются одни и те же аргументы, только для разных целей и контекстов.
nathanjosiah
6
Где говорится, что обратный вызов отказа получает эти 3 аргумента? Это также указано для всего параметра настройки. Они разные, например, аргументы для completeотличаются от переданных аргументов done.
Tom
5
@Tom, я знаю, что опаздываю, чтобы ответить вам, но здесь сказано: api.jquery.com/jQuery.ajax/#jqXHR ( jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});)
nathanjosiah
27

Вот пример после поиска той же проблемы:

this.GetOrderList = function (customerId) {
    var self = this;
    $.post('MySuperServer.aspx', { customerId: customerId })
    .done(function (dataStr) {
        var orderList = jQuery.parseJSON(dataStr);
        self.process(orderList);
    })
    .fail(function (jqXHR, textStatus, error) {
        console.log("Post error: " + error);
    });
}

При отладке у меня появилось:

  • jqXHR - это объект JS
  • textStatus - "ошибка"
  • error - «Internal Server Error», это сообщение об ошибке, отправленное сервером.
Оливье де Ривойр
источник
1
Да, я думаю, что они пытаются обозначить, используя слово textStatus, что это переменная состояния и что она находится в текстовом формате. По сравнению с jqXHR, который является объектом jQuery.
Филлип Сенн,