Які параметри надсилаються .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 нарешті узгоджуються з відкладеними.
Майкл Міор

2
О, але метод ajaxError має подію, jqXHR, ajaxSettings, кинутоError.
Філіп Сенн

Вони все ті ж зворотні дзвінки, які передаються одними і тими ж аргументами, просто різними напрямами використання та контекстами.
натанджосія

6
Де зазначено, що зворотний виклик отримує ці 3 аргументи? Він також встановлює так для повного параметра налаштування. Вони різні, наприклад, аргументи completeвідрізняються від аргументів, переданих done.
Том

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 - це "помилка"
  • помилка - "Внутрішня помилка сервера", це повідомлення про помилку, надіслане сервером.

1
Так, я думаю, що вони намагаються зазначити, використовуючи слово textStatus, - це те, що це змінна стан і що це у текстовому форматі. Порівняно з jqXHR, що є об'єктом jQuery.
Філіп Сенн
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.