Pada jQuery 1.5, metode AJAX semua jQuery mengembalikan jqXHRobjek yang menyediakan .error(), .success(), dan .complete()metode.
Apa perbedaan antara .success()dan .complete()?
Pada jQuery 1.5, metode AJAX semua jQuery mengembalikan jqXHRobjek yang menyediakan .error(), .success(), dan .complete()metode.
Apa perbedaan antara .success()dan .complete()?
Jawaban:
.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.
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);
}
})
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.)
successrespon dari server: complete()dan success()dipanggil.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.