A partir de jQuery 1.5, métodos AJAX tudo do jQuery retornar um jqXHRobjeto que fornece .error(), .success()e .complete()métodos.
Qual é a diferença entre .success()e .complete()?
A partir de jQuery 1.5, métodos AJAX tudo do jQuery retornar um jqXHRobjeto que fornece .error(), .success()e .complete()métodos.
Qual é a diferença entre .success()e .complete()?
Respostas:
.success()só é chamado se o seu servidor web responder com um 200 OKcabeçalho HTTP - basicamente quando está tudo bem.
No entanto, sempre.complete() será chamado, não importa se a chamada ajax foi bem-sucedida ou não - talvez tenha gerado erros e retornado um erro - .complete () ainda será chamado.
Vale a pena mencionar que .complete()será chamado depois que .success() for chamado - se for importante para você.
success()chamado quando o servidor retorna código de status 200 , complete()é chamado depois success(). e eu vejo alguma diferença:
Em success()você não pode obter a string de resposta xml que você usa $.ajax()e define, dataType:xml
mas em complete()você pode obter o formato de string do documento xml lido usando
$.ajax({
url:'??',
dataType:'xml',
oncomplete: function(data,status){
console.log(data.responseText);
}
})
success()é chamado quando o servidor retorna success status code, como: 200, 201etc.
complete()é chamado sempre que a solicitação é concluída. (não importa, é uma resposta de sucesso / erro do servidor.)
successresposta do servidor: complete()e success()é chamado.errorresposta do servidor: complete()e error()é chamado.Com que propósito você pode usar complete(): suponha que beforeSend()você mostre um loader image, e complete()que possa esconder isso loader image.