Разница между .success() и .complete()?
Как и в jQuery 1.5, все методы jQuery AJAX возвращают объект jqXHR
, который предоставляет методы .error()
, .success()
и .complete()
.
В чем разница между .success()
и .complete()
?
Ответы
Ответ 1
.success()
только вызывается, если ваш веб-сервер отвечает заголовком 200 OK
HTTP - в основном, когда все в порядке.
Однако .complete()
всегда будет вызываться независимо от того, был ли вызов ajax успешным или нет - возможно, он вывел ошибки и возвратил ошибку -.complete() все равно будет вызван.
Следует отметить, что .complete()
будет вызван после вызова .success()
- если это важно для вас.
Ответ 2
success()
вызывается, когда сервер возвращает код состояния 200, complete()
вызывается всегда, когда запрос завершен, независимо от результата.
Ответ 3
success()
вызывается, когда сервер возвращает код состояния 200, complete()
вызывается после success()
. и я вижу некоторую разницу:
В success()
вы не можете получить строку ответа xml, которую вы используете с помощью $.ajax()
и установите dataType:xml
Но в complete()
вы можете получить строковый формат прочитанного XML-документа, используя
$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})