A partir de jQuery 1.5, métodos AJAX tudo do jQuery retornar um jqXHR
objeto 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 jqXHR
objeto 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 OK
cabeç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
, 201
etc.
complete()
é chamado sempre que a solicitação é concluída. (não importa, é uma resposta de sucesso / erro do servidor.)
success
resposta do servidor: complete()
e success()
é chamado.error
resposta 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
.