За JQuery 1.5, методу AJAX всіх JQuery в повертає jqXHRоб'єкт , який забезпечує .error(), .success()і .complete()методу.
У чому різниця між .success()і .complete()?
За JQuery 1.5, методу AJAX всіх JQuery в повертає jqXHRоб'єкт , який забезпечує .error(), .success()і .complete()методу.
У чому різниця між .success()і .complete()?
Відповіді:
.success()Викликається, лише якщо ваш веб-сервер відповість 200 OKзаголовком HTTP - в основному, коли все добре.
Однак завжди.complete() буде дзвонити незалежно від того, успішний виклик Ajax чи ні - можливо, він видав помилки та повернув помилку - .complete () все одно буде викликатись.
Варто згадати, що .complete()вас дзвонять після того, як вас .success() дзвонять - якщо це важливо для вас.
success()викликається, коли сервер повертає 200 код статусу, complete()викликається післяsuccess() . і я бачу деяку різницю:
На success()ви не можете отримати рядок відповіді XML , що ви отримаєте , використовуючи $.ajax()і безліч dataType:xml
Але complete()ви можете отримати формат рядка з XML - документа , що читаються з допомогою
$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})
success()викликається , коли сервер повертає success status code, як: 200,201 т.д.
complete()називається завжди, коли запит завершено. (незалежно від того, це успіх / відповідь на помилку від сервера.)
successвідповідь від сервера: complete()і success()викликається.errorвідповідь від сервера: complete()і error()викликається.Для чого ви можете використовувати complete(): припустимо, beforeSend()ви показуєте loader image, а в complete(), ви можете це приховати loader image.