Question

Je travaille sur une application de bandes qui utilise un peu de jQuery pour rendre l'interface utilisateur plus dynamique / utilisable.

J'ai défini une résolution d'erreur. Ainsi, si une erreur est générée, l'utilisateur est redirigé vers une page error.jsp.

Cependant, si une erreur est générée pendant un appel jQuery Ajax, au lieu de rediriger vers la page error.jsp, le code html est imprimé sur la page où le résultat de l'appel aurait dû être placé.

Comment puis-je dire à jQuery de rediriger si une exception a été levée au lieu d’être imprimée sur la page?

Exemple d'Ajax incriminé:

$.post("SendStatusEmail.action",
            {status: newstatus, id : id },
            function(data) {
                column.text(data);
                column.addClass("redfont");
                column.parent().fadeOut(3000, function(){column.parent().remove()});
Était-ce utile?

La solution

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

Je devrais ajouter que je ne redirige pas lorsqu'il y a une exception dans un appel Ajax. Au lieu de cela, le serveur renvoie une description de l'erreur au format JSON et l'affiche dans la page.

Autres conseils

Pourquoi ne pas utiliser $ .ajax () au lieu de $ .post ()? Plus général, $ .ajax () offre un rappel d’erreur que vous pouvez appeler en cas d’erreur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top