Pregunta

Estoy trabajando en una aplicación de rayas que utiliza un poco de jQuery para hacer que la interfaz de usuario sea más dinámica / utilizable.

Configuré una resolución de error, por lo que si se produce un error, el usuario es redirigido a una página error.jsp.

Sin embargo, si se produce un error durante una llamada jQuery Ajax, en lugar de redirigir a la página error.jsp, obtengo html impreso en la página donde debería haber estado el resultado de la llamada.

¿Cómo le digo a jQuery que redirija si se produjo una excepción en lugar de imprimir en la página?

Un ejemplo del Ajax ofensor:

$.post("SendStatusEmail.action",
            {status: newstatus, id : id },
            function(data) {
                column.text(data);
                column.addClass("redfont");
                column.parent().fadeOut(3000, function(){column.parent().remove()});
¿Fue útil?

Solución

$(document).ajaxError(function(event, XMLHttpRequest, ajaxOptions, thrownError) {
    // redirect here.
}

Debo agregar que no redirijo cuando hay una excepción en una llamada Ajax. En cambio, hago que el servidor devuelva una descripción del error en formato JSON y la muestre en la página.

Otros consejos

¿Qué pasa con el uso de $ .ajax () en lugar de $ .post ()? El más general $ .ajax () ofrece una devolución de llamada de error que puede llamar en caso de error.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top