A partir de jQuery 1.5, toutes les méthodes AJAX jQuery renvoient un jqXHR
objet qui fournit .error()
, .success()
et des .complete()
méthodes.
Quelle est la différence entre .success()
et .complete()
?
A partir de jQuery 1.5, toutes les méthodes AJAX jQuery renvoient un jqXHR
objet qui fournit .error()
, .success()
et des .complete()
méthodes.
Quelle est la différence entre .success()
et .complete()
?
Réponses:
.success()
n'est appelé que si votre serveur Web répond avec un 200 OK
en-tête HTTP - essentiellement lorsque tout va bien.
Cependant, .complete()
sera toujours appelé, peu importe si l'appel ajax a réussi ou non - peut-être qu'il a généré des erreurs et renvoyé une erreur - .complete () sera toujours appelé.
Il convient de mentionner qu'il .complete()
sera appelé après .success()
avoir été appelé - si cela compte pour vous.
success()
appelé lorsque le serveur renvoie le code d'état 200 , complete()
est appelé après success()
. et je vois une différence:
On success()
ne peut pas obtenir la chaîne de réponse xml que vous utilisez $.ajax()
et que vous définissez dataType:xml
Mais dans complete()
vous pouvez obtenir le format de chaîne du document xml lu en utilisant
$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})
success()
est appelée lorsque le serveur renvoie success status code
, comme: 200
, 201
etc.
complete()
est toujours appelée lorsque la demande est terminée. (peu importe, c'est une réponse de succès / erreur du serveur.)
success
réponse du serveur: complete()
et success()
est appelé.error
réponse du serveur: complete()
et error()
est appelé.Dans quel but vous pouvez utiliser complete()
: supposons que dans beforeSend()
vous affichez un loader image
, et dans complete()
, vous pouvez le cacher loader image
.