Come di jQuery 1.5, metodi AJAX tutti di jQuery restituiscono un jqXHRoggetto che fornisce .error(), .success()e .complete()metodi.
Qual'è la differenza tra .success()e .complete()?
Come di jQuery 1.5, metodi AJAX tutti di jQuery restituiscono un jqXHRoggetto che fornisce .error(), .success()e .complete()metodi.
Qual'è la differenza tra .success()e .complete()?
Risposte:
.success()viene chiamato solo se il tuo server web risponde con 200 OKun'intestazione HTTP, in pratica quando tutto va bene.
Tuttavia, .complete()verrà sempre chiamato indipendentemente dal fatto che la chiamata ajax abbia avuto successo o meno - forse ha emesso errori e ha restituito un errore - .complete () verrà comunque chiamato.
Vale la pena ricordare che .complete()verrà chiamato dopo essere stato .success() chiamato, se è importante per te.
success()chiamato quando il server restituisce il codice di stato 200 , complete()viene chiamato dopo success(). e vedo qualche differenza:
Su success()non puoi ottenere la stringa di risposta xml che usi $.ajax()e imposta dataType:xml
Ma complete()puoi ottenere il formato stringa del documento xml letto usando
$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})
success()viene chiamato quando il server restituisce success status code, come: 200, 201etc.
complete()viene chiamato sempre quando la richiesta è completa. (non importa, è una risposta di successo / errore dal server.)
successrisposta dal server: complete()e success()viene chiamato.errorrisposta dal server: complete()e error()viene chiamato.Per quale scopo puoi usare complete(): supponi beforeSend()di mostrare a loader image, e in complete(), puoi nasconderlo loader image.