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