A partir de jQuery 1.5, todos los métodos AJAX de jQuery devuelven un objeto jqXHR que proporciona los .error() , .success() y .complete() .
¿Cuál es la diferencia entre .success() y .complete() ?
.success() solo se llama si su servidor web responde con un encabezado HTTP 200 OK , básicamente cuando todo está bien.
Sin embargo, siempre se llamará a .complete() sin importar si la llamada ajax fue exitosa o no, tal vez generó errores y devolvió un error, todavía se llamará a .complete().
Vale la pena mencionar que se llamará a .complete() después de que se llame a .success() , si es importante para usted.
Se llama a success() cuando el servidor devuelve un código de estado 200, se llama a complete() siempre que la solicitud está completa, sin importar el resultado.
Se llama a success() cuando el servidor devuelve success status code , como: 200 , 201 , etc.
complete() siempre se llama cuando la solicitud está completa. (no importa, es una respuesta de éxito/error del servidor).
success del servidor: se llama el success() y complete() .error del servidor: se llama error() y complete() . Ejemplo: con qué propósito puede usar complete() :
supongamos que en beforeSend() muestra una loader image y en complete() puede ocultar esa loader image .