Perbedaan antara .success () dan .complete ()?

103

Pada jQuery 1.5, metode AJAX semua jQuery mengembalikan jqXHRobjek yang menyediakan .error(), .success(), dan .complete()metode.

Apa perbedaan antara .success()dan .complete()?

Rendicahya
sumber
2
@nix apakah Anda memiliki tautan yang menjelaskan hal-hal usang secara lebih mendetail?
neoneye
@neoneye Ctrl + F "pemberitahuan penghentian" di api.jquery.com/jQuery.ajax/
ThatGuy

Jawaban:

223

.success()hanya dipanggil jika server web Anda merespons dengan 200 OKheader HTTP - pada dasarnya ketika semuanya baik-baik saja.

Namun, .complete()akan selalu dipanggil tidak peduli apakah panggilan ajax berhasil atau tidak - mungkin menghasilkan kesalahan dan mengembalikan kesalahan - .complete () akan tetap dipanggil.

Perlu disebutkan bahwa .complete()akan dipanggil setelah .success() dipanggil - jika itu penting bagi Anda.

arnorhs
sumber
11

success()dipanggil ketika server mengembalikan kode status 200, complete()dipanggil selalu ketika permintaan selesai, apa pun hasilnya.

CarlosZ
sumber
1

success()dipanggil ketika server mengembalikan 200 kode status, complete()dipanggil setelahnya success(). dan saya melihat beberapa perbedaan:

Pada success()Anda tidak bisa mendapatkan string respons xml yang Anda gunakan $.ajax()dan atur dataType:xml Tetapi complete()Anda bisa mendapatkan format string dari dokumen xml yang telah dibaca menggunakan

$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})
Mostafa
sumber
0

success()disebut ketika server kembali success status code, seperti: 200, 201dll

complete()selalu dipanggil saat permintaan selesai. (tidak masalah, ini adalah respons sukses / kesalahan dari server.)


Begitu,

  • ketika ada successrespon dari server: complete()dan success()dipanggil.
  • ketika ada errorrespon dari server: complete()dan error()dipanggil.

Untuk tujuan apa Anda dapat menggunakan complete(): misalkan beforeSend()Anda menampilkan a loader image, dan dalam complete(), Anda dapat menyembunyikannya loader image.

mahfuz
sumber