.Success () ve .complete () arasındaki fark nedir?


103

JQuery 1.5 itibariyle tüm jQuery'nin AJAX yöntemleri dönmek jqXHRsağlar nesnesi .error(), .success()ve .complete()yöntemler.

Arasındaki fark nedir .success()ve .complete()?


2
@nix, kullanımdan kaldırılan şeyleri daha ayrıntılı olarak açıklayan bir bağlantınız var mı?
neoneye

@neoneye Ctrl + F api.jquery.com/jQuery.ajax/ adresinde "kullanımdan kaldırma bildirimi"
ThatGuy

Yanıtlar:


223

.success()yalnızca web sunucunuz bir 200 OKHTTP başlığıyla yanıt verirse çağrılır - temelde her şey yolundayken.

Ancak, ajax çağrısı başarılı olsa da olmasa .complete()da her zaman çağrılır - belki hata verir ve bir hata döndürür - .complete () yine de çağrılır.

Sizin .complete()için önemliyse, arandıktan sonra aranacağını belirtmekte fayda var .success().


11

success()sunucu bir 200 durum kodu döndürdüğünde complete()çağrılır, sonuç ne olursa olsun istek tamamlandığında her zaman çağrılır.


1

success()sunucu 200 durum kodunu döndürdüğünde complete()çağrılır, sonra çağrılır success(). ve bazı farklar görüyorum:

Açık success()kullanmakta olsun o xml yanıt dizesi alamayan $.ajax()ve seti dataType:xml Ama içinde complete()sen çok okunan xml belgesinin dize biçimini alabilir kullanarak

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

0

success()çağrıldığında sunucu döner success status codegibi: 200, 201vb

complete()her zaman istek tamamlandığında çağrılır. (ne olursa olsun, sunucudan gelen başarı / hata yanıtıdır.)


Yani,

  • ne zaman var successsunucudan yanıt: complete()ve success()denir.
  • ne zaman var errorsunucudan yanıt: complete()ve error()denir.

Hangi amaçla kullanabileceğinizi complete(): varsayalım ki içinde beforeSend()a gösteriniz loader imageve içinde complete()bunu gizleyebilirsiniz loader image.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.