Jak jQuery 1.5, wszystkie metody AJAX jQuery zwraca jqXHRobiekt, który zapewnia .error(), .success()i .complete()metod.
Jaka jest różnica między .success()i .complete()?
Jak jQuery 1.5, wszystkie metody AJAX jQuery zwraca jqXHRobiekt, który zapewnia .error(), .success()i .complete()metod.
Jaka jest różnica między .success()i .complete()?
Odpowiedzi:
.success()jest wywoływany tylko wtedy, gdy serwer WWW odpowie 200 OKnagłówkiem HTTP - w zasadzie, gdy wszystko jest w porządku.
Jednak .complete()będzie zawsze sprawdzony bez względu na to, czy wywołanie ajax był udany, czy nie - może to wyprowadzane błędy i zwróciło błąd - .complete () nadal będzie sprawdzony.
Warto wspomnieć, że .complete()zadzwonimy po .success() Twoim wezwaniu - jeśli ma to dla Ciebie znaczenie.
success()wywoływana, gdy serwer zwróci kod statusu 200 , complete()jest wywoływana po success(). i widzę różnicę:
Na success()nie możesz uzyskać ciągu odpowiedzi xml, który otrzymujesz $.ajax()i ustawisz dataType:xml
Ale w complete()możesz uzyskać format ciągu odczytanego dokumentu xml używając
$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})
success()jest wywoływana, gdy powraca serwera success status code, takich jak: 200, 201etc.
complete()jest wywoływana zawsze po zakończeniu żądania. (nieważne, jest to odpowiedź serwera na sukces / błąd).
successodpowiedź z serwera: complete()i success()jest wywoływana.errorodpowiedź z serwera: complete()i error()jest wywoływana.W jakim celu możesz użyć complete(): przypuśćmy, beforeSend()że pokazujesz a loader image, aw complete()możesz to ukryć loader image.