Lassen Sie sich sagen, dass ich den folgenden jQuery AJAX-Aufruf habe:Wie gehen Sie mit Fehlern von AJAX-Anrufen um?
$.ajax({
type: "POST",
url: "MyUrl",
data: "val1=test",
success: function(result){
// Do stuff
}
});
Nun, wenn dieser AJAX-Aufruf wird ich möchte, dass der serverseitigen Code durch ein paar Fehlerbehandlung Kontrollen ausführen (zB wird der Benutzer noch angemeldet , haben sie die Erlaubnis, diesen Anruf zu benutzen, sind die Daten gültig, usw.). Wenn ein Fehler festgestellt wird, wie kann ich diese Fehlermeldung wieder auf die Clientseite übertragen?
Mein erster Gedanke wäre, ein JSON-Objekt mit zwei Feldern zurückzugeben: Fehler und ErrorMessage. Diese Felder würden dann in dem jQuery AJAX-Aufruf überprüft werden:
$.ajax({
type: "POST",
url: "MyUrl",
data: "val1=test",
success: function(result){
if (result.error == "true")
{
alert("An error occurred: " & result.errorMessage);
}
else
{
// Do stuff
}
}
});
Das fühlt sich ein bisschen klobig zu mir, aber es funktioniert. Gibt es eine bessere Alternative?
Ich glaube, es gibt auch eine für "Fehler." – BobbyShaftoe
Ja, es gibt einen "Fehler" -Rückruf, der genauso funktioniert wie der "Erfolg" -Rückruf. Ich war mir jedoch nicht sicher, ob die Rückgabe eines HTTP-Fehlers der beste Ansatz war. –
Solange Sie sich um den Fehler auf der Serverseite kümmern (Protokollierung usw.), gibt es kein Problem beim Senden an den Client, so dass es auch behandelt werden kann. – rodbv