.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/