J'envoie une réponse d'erreur à ma jQuery. Cependant, je ne peux pas obtenir le texte de réponse (dans l'exemple ci-dessous, ce serait allé à la plage )
La seule chose que jQuery dit est «erreur».
Voir cet exemple pour plus de détails:
php
<?
header('HTTP/1.1 500 Internal Server Error');
print "Gone to the beach"
?>
jQuery
$.ajax({
type: "post",
data: {id: 0},
cache: false,
url: "doIt.php",
dataType: "text",
error: function (request, error) {
console.log(arguments);
alert(" Can't do because: " + error);
},
success: function () {
alert(" Done ! ");
}
});
Maintenant mon résultat est:
Journal:
[XMLHttpRequest readyState=4 status=500, "error", undefined]
alerte:
Impossible à faire car: erreur
Des idées?
php
javascript
jquery
ajax
error-handling
jantimon
la source
la source
header
fonction gère-t-elle cela?$.ajax()
appelle la fonction d'erreur qui lui est transmise.Réponses:
Essayer:
la source
eval
is EVIL ... stackoverflow.com/questions/646597/…eval
ici n'a pas beaucoup de sens. Si vous souhaitez analyser une réponse JSON, utilisezJSON.parse
. Dans le cas de l'OP, la réponse n'est même pas JSON ou JavaScript, donc votreeval
va juste provoquer une SyntaxError.xhr
n'est pas définiPour moi, cela fonctionne simplement:
la source
Regardez la
responseText
propriété du paramètre de demande.la source
Comme finalement suggéré par cette autre réponse et ses commentaires sur cette page:
la source
C'est ce qui a fonctionné pour moi
la source
Cela vous permettra de voir la réponse entière et pas seulement la valeur "responseText"
la source
vous pouvez aussi l'essayer:
la source
Si vous voulez obtenir une erreur de syntaxe avec le numéro de ligne, utilisez ceci
la source
La meilleure approche simple:
la source
Je l'ai utilisé et cela a parfaitement fonctionné.
la source
Si vous ne rencontrez pas d'erreur de réseau et que vous souhaitez faire apparaître une erreur depuis le backend, pour des privilèges par exemple insuffisants, envoyez votre réponse avec un 200 et un message d'erreur. Ensuite, dans votre gestionnaire de réussite, vérifiez data.status == 'error'
la source
fail
méthode au lieu de ladone
méthode. Toutes les demandes renvoient un objet qui contient un objet «status» avec du code et un message.