$.ajax({
url: "test.html",
error: function(){
//do something
},
success: function(){
//do something
}
});
A veces la successfunció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
$.ajaxdocumentació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
timeoutconfiguració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,
errorse activa elsuccesscontrolador y no el controlador :)fuente
use la
.ajaxfunció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