Difference between .success() and .complete()?
As of jQuery 1.5, all jQuery's AJAX methods return a jqXHR
object that provides .error()
, .success()
, and .complete()
methods.
What is the difference between .success()
and .complete()
?
Solution 1:
.success()
only gets called if your webserver responds with a 200 OK
HTTP header - basically when everything is fine.
However, .complete()
will always get called no matter if the ajax call was successful or not - maybe it outputted errors and returned an error - .complete() will still get called.
It's worth mentioning that .complete()
will get called after .success()
gets called - if it matters to you.
- http://api.jquery.com/ajaxComplete/
- http://api.jquery.com/ajaxSuccess/
Solution 2:
success()
is called when the server returns a 200 status code, complete()
is called always when the request is complete, no matter the outcome.