$.ajax({
url: "test.html",
error: function(){
//do something
},
success: function(){
//do something
}
});
As vezes success
função funciona bem, às vezes não.
Como defino o tempo limite para esta solicitação ajax? Por exemplo, 3 segundos, se o tempo acabar, mostre um erro.
O problema é que a solicitação do ajax congela o bloco até terminar. Se o servidor estiver inativo por um tempo, ele nunca terminará.
,
lá após o}
.Respostas:
Por favor, leia a
$.ajax
documentação , este é um tópico coberto.Você pode ver que tipo de erro foi lançado acessando o parâmetro textStatus da
error: function(jqXHR, textStatus, errorThrown)
opção As opções são "timeout", "error", "abort" e "parsererror".fonte
Aqui estão alguns exemplos que demonstram a configuração e a detecção de tempos limites nos novos e antigos paradigmas do jQuery.
Live Demo
Promessa com jQuery 1.8+
jQuery 1.8+
jQuery <= 1.7.2
Observe que o parâmetro textStatus (ou jqXHR.statusText ) informará qual foi o erro. Isso pode ser útil se você quiser saber que a falha foi causada por um tempo limite.
src: http://api.jquery.com/jQuery.ajax/
fonte
$.ajax().fail()
e$.ajax().error()
?Você pode usar a
timeout
configuração nas opções do ajax assim:Leia tudo sobre as opções do ajax aqui: http://api.jquery.com/jQuery.ajax/
Lembre-se de que, quando ocorre um tempo limite, o
error
manipulador é acionado e não osuccess
manipulador :)fonte
use a
.ajax
função jQuery com todos os recursos. compare com https://stackoverflow.com/a/3543713/1689451 para obter um exemplo.sem testar, basta mesclar seu código com a pergunta SO mencionada:
fonte