Какие аргументы передаются функции внутри ajax.done?
У меня есть следующее:
$.ajax(link.href,
{
cache: false,
dataType: 'html'
})
.done(onDialogDone)
.fail(onDialogFail);
Это прекрасно работает и вызывается onDialogDone. Однако какие аргументы я должен ожидать, чтобы представить в onDialogDone и что я должен ожидать для onDialogFail.
Причина, по которой я спрашиваю, заключается в том, что я использую typescript, и я хочу указать правильные аргументы, когда я определяю свои onDialogDone и onDialogFail.
Ответы
Ответ 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() для деталей реализации.