Ich sende eine Fehlerantwort an meine jQuery. Ich kann jedoch den Antworttext nicht erhalten (im folgenden Beispiel wäre dies an den Strand gegangen ).
Das einzige, was jQuery sagt, ist "Fehler".
In diesem Beispiel finden Sie Details:
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 ! ");
}
});
Jetzt ist mein Ergebnis:
Log:
[XMLHttpRequest readyState=4 status=500, "error", undefined]
aufmerksam:
Kann nicht, weil: Fehler
Irgendwelche Ideen?
php
javascript
jquery
ajax
error-handling
jantimon
quelle
quelle
header
Funktion dies?$.ajax()
die an ihn übergebene Fehlerfunktion aufgerufen wird.Antworten:
Versuchen:
quelle
eval
is EVIL ... stackoverflow.com/questions/646597/…eval
Hier macht nicht viel Sinn. Wenn Sie eine JSON-Antwort analysieren möchten, verwenden SieJSON.parse
. Im Fall des OP ist die Antwort nicht einmal JSON oder JavaScript, dahereval
wird nur ein SyntaxError verursacht.xhr
undefiniert istFür mich funktioniert das einfach:
quelle
Sehen Sie sich die
responseText
Eigenschaft des Anforderungsparameters an.quelle
Wie letztendlich durch diese andere Antwort und ihre Kommentare auf dieser Seite vorgeschlagen:
quelle
Das hat bei mir funktioniert
quelle
Auf diese Weise können Sie die gesamte Antwort sehen, nicht nur den Wert "responseText"
quelle
Sie können es auch versuchen:
quelle
Wenn Sie einen Syntaxfehler mit Zeilennummer erhalten möchten , verwenden Sie diese Option
quelle
Der beste einfache Ansatz:
quelle
Ich habe das benutzt und es hat perfekt funktioniert.
quelle
Wenn Sie keinen Netzwerkfehler haben und einen Fehler aus dem Backend anzeigen möchten, z. B. unzureichende Berechtigungen, senden Sie Ihre Antwort mit einer 200 und einer Fehlermeldung. Überprüfen Sie dann in Ihrem Erfolgshandler data.status == 'error'
quelle
fail
Methode anstelle derdone
Methode auslöst . Alle Anforderungen geben ein Objekt zurück, das ein 'Status'-Objekt mit Code und Nachricht enthält.