$.ajax({
url: "test.html",
error: function(){
//do something
},
success: function(){
//do something
}
});
A veces la success
función funciona bien, a veces no.
¿Cómo configuro el tiempo de espera para esta solicitud ajax? Por ejemplo, 3 segundos, si se agota el tiempo, muestre un error.
El problema es que la solicitud ajax congela el bloque hasta que finaliza. Si el servidor está inactivo durante un tiempo, nunca terminará.
,
después del}
.Respuestas:
Lea la
$.ajax
documentación , este es un tema cubierto.Puede ver qué tipo de error se produjo accediendo al parámetro textStatus de la
error: function(jqXHR, textStatus, errorThrown)
opción. Las opciones son "timeout", "error", "abort" y "parsererror".fuente
Aquí hay algunos ejemplos que demuestran la configuración y detección de tiempos de espera en los viejos y nuevos paradigmas de jQuery.
Live Demo
Promesa con jQuery 1.8+
jQuery 1.8+
jQuery <= 1.7.2
Observe que el parámetro textStatus (o jqXHR.statusText ) le permitirá saber cuál fue el error. Esto puede ser útil si desea saber que la falla fue causada por un tiempo de espera.
src: http://api.jquery.com/jQuery.ajax/
fuente
$.ajax().fail()
y$.ajax().error()
?Puede usar la
timeout
configuración en las opciones de ajax de esta manera:Lea todo sobre las opciones de ajax aquí: http://api.jquery.com/jQuery.ajax/
Recuerde que cuando se agota el tiempo de espera,
error
se activa elsuccess
controlador y no el controlador :)fuente
use la
.ajax
función jQuery con todas las funciones. compare con https://stackoverflow.com/a/3543713/1689451 para ver un ejemplo.sin probar, simplemente fusionando su código con la pregunta SO referenciada:
fuente