Подтвердить что ты не робот

Какие аргументы передаются функции внутри ajax.done?

У меня есть следующее:

    $.ajax(link.href,
    {
        cache: false,
        dataType: 'html'
    })
        .done(onDialogDone)
        .fail(onDialogFail);

Это прекрасно работает и вызывается onDialogDone. Однако какие аргументы я должен ожидать, чтобы представить в onDialogDone и что я должен ожидать для onDialogFail.

Причина, по которой я спрашиваю, заключается в том, что я использую typescript, и я хочу указать правильные аргументы, когда я определяю свои onDialogDone и onDialogFail.

4b9b3361

Ответ 1

Аргументы для .done() и .fail() совпадают с аргументами для соответствующих параметров success: и error: для функции $.ajax(), а именно:

.done( function(data, textStatus, jqXHR) { ... } );

и

.fail( function(jqXHR, textStatus, errorThrown) { ... } );

Для целей typescript, textStatus и errorThrown являются строками, jqXHR является Object, а data зависит от того, что отправляет вам удаленный сервер.

Ответ 2

Три параметра, переданные обработчику done:

data, textStatus, jqXHR

Вы можете прочитать больше здесь: http://api.jquery.com/jQuery.ajax/

  • data - это ответное сообщение
  • textStatus всегда будет иметь успех в функции done
  • jqXHR является исходным XMLHttpRequest

Ответ 3

Отметьте этот:

Методы (часть реализаций jqXHR и Deferred, показанная здесь только для ясности)

 .ajax().always(function(a, textStatus, b){});

Заменяет метод .complete(), который устарел в jQuery 1.8.       В ответ на успешную транзакцию аргументы такие же, как и .done() (т.е. A = data, b = jqXHR), а для неудачных транзакций аргументы такие же, как .fail() (то есть a = jqXHR, b = errorThrown).       Это альтернативная конструкция для полной функции обратного вызова выше. Обратитесь к отложенному .always() для деталей реализации.

    .ajax().done(function(data, textStatus, jqXHR){});

Заменяет метод .success(), который устарел в jQuery 1.8. Это альтернативная конструкция для функции обратного вызова успеха выше. Обратитесь к отложенному .done() для деталей реализации.

    .ajax().fail(function(jqXHR, textStatus, errorThrown){});

Заменяет метод .error(), который устарел в jQuery 1.8. Это альтернативная конструкция для полной функции обратного вызова выше. Обратитесь к отложенному .fail() для деталей реализации.

    .ajax().then(function(data, textStatus, jqXHR){}, function(jqXHR, textStatus, errorThrown){});

Включает функции методов .done() и .fail(). Обратитесь к отложенному .then() для деталей реализации.

    .ajax().pipe(function(data, textStatus, jqXHR){}, function(jqXHR, textStatus, errorThrown){});

Включает функции методов .done() и .fail(), позволяя манипулировать базовым Promise. Обратитесь к разделу deferred.pipe() для деталей реализации.