Comment retourner Exception Java info à jQuery.ajax appel RESTE?
J'ai quelques jQuery code qui fait appel RESTE pour Java back-end. Le traitement de la fin de la fonction pourrait rencontrer une Exception. Quelle est la meilleure façon d'obtenir cette information jusqu'à Javascript? Dans un test, j'ai pris l'exception en Java et définir le code de statut HTTP 500. De ce fait, les $.ajax gestionnaire d'erreur pour être appelé, comme prévu. les arguments pour le gestionnaire d'erreur n'a pas vraiment d'contiennent toutes les informations utiles. Je serais l'idéal pour propager l'Exception.getMessage() chaîne vers le gestionnaire d'erreur en quelque sorte, mais ne savent pas comment.
function handleClick() {
var url = '/backend/test.json';
$.ajax({
type: "POST",
url: url,
cache: false,
dataType: "json",
success: function(data){
alert("it worked");
},
error: function(jqXHR, textStatus, errorThrown) {
alert(jqXHR);
alert(textStatus); //this comes back as "error"
alert(errorThrown); //this comes back as "undefined"
}
});
}
- Cela n'a rien à voir avec jquery ou ajax, mais avec votre application backend. Qu'utilisez-vous? Les Servlets? JSP? Spring-MVC?
- Quel est le jqXHR objet que vous obtenez comme un argument de votre gestionnaire d'erreur? Ne pouvez-vous pas lire le corps de la réponse-ou un en-tête -- à partir de là?
Vous devez vous connecter pour publier un commentaire.
J'ai été en mesure d'envoyer un message d'erreur personnalisé (java String) de retour pour un client basé sur jQuery de cette façon. Je pense que mon message personnalisé peut être remplacé, à l'exception de l'info que vous voulez/besoin
dans le Contrôleur:
En client/javascript (appelée à partir de l'ajax d'événement d'erreur)
Espère que cette aide/
sendError
est plus approprié, plutôt que desetStatus
. Je crois il y a quelques autres sous le capot les opérations effectuées parsendError
quesetStatus
ne pas le faire.Utiliser le servlet de réponse de l'objet
sendError
méthode qui vous permet de définir le code d'état, et l'état d'un message texte.La Documentation
Exemple
MODIFIER
La jqXHR paramètre vous donne accès à toutes les informations de réponse, y compris le message d'état.
jqXHR.statusText
vous donnera le message d'état transmis à lasendError
méthode.Si vous avez besoin de plus qu'un court message, vous pouvez écrire des données à la sortie de la réponse et obtenir que de
jqXHR.responseText
oujqXHR.responseXML
.If you need more than a short message...
Pourquoi? Fait quelque chose de mal se passer si le deuxième paramètre de chaîne desendError
est-elle trop grande?