Разница между .success () и .complete ()?

103

По JQuery 1.5, метода AJAX всех JQuery в возвращает jqXHRобъект , который обеспечивает .error(), .success()и .complete()методу.

В чем разница между .success()и .complete()?

Rendicahya
источник
2
@nix у вас есть ссылка, которая более подробно описывает устаревшие вещи?
neoneye
@neoneye Ctrl + F «уведомление об устаревании» на api.jquery.com/jQuery.ajax/
ThatGuy
3
i.stack.imgur.com/JogVo.png
Иван Блэк

Ответы:

223

.success()200 OKвызывается только в том случае, если ваш веб-сервер отвечает заголовком HTTP - в основном, когда все в порядке.

Тем не менее, .complete()будет всегда вызываться независимо от того , если вызов Ajax был успешным или нет - может быть , выводимый ошибки и возвращается сообщение об ошибке - .complete () равно будет вызван.

Стоит упомянуть, что он .complete()будет вызван после того, как .success() будет вызван - если это важно для вас.

Arnorhs
источник
11

success()вызывается, когда сервер возвращает код состояния 200, complete()вызывается всегда, когда запрос завершен, независимо от результата.

CarlosZ
источник
1

success()вызывается, когда сервер возвращает код состояния 200 , complete()вызывается после success(). и я вижу разницу:

На success()вы не можете получить строку ответа XML , что вы получите , используя $.ajax()и множество dataType:xml Но complete()вы можете получить формат строки из XML - документа , читаемые с помощью

$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})
Мостафа
источник
0

success()вызывается, когда сервер возвращается success status code, например: 200и 201т. д.

complete()вызывается всегда, когда запрос завершен. (неважно, это успешный / ошибочный ответ от сервера.)


Так,

  • когда есть successответ от сервера: complete()и success()вызывается.
  • когда есть errorответ от сервера: complete()и error()вызывается.

С какой целью вы можете использовать complete(): предположим, beforeSend()вы показываете a loader image, а in complete()вы можете скрыть это loader image.

махфуз
источник