Wenn $ Schnipsel in jQuery verwenden, wie kann ich absichtlich einen Fehler in dem geladenen Dokument werfen?
-
19-09-2019 - |
Frage
In meinem Dokument Ich habe dieses Skript:
$.ajax({ type:"POST",url:"ajax.php",data:data,
success: function() {
//onsuccess
},
error: function() {
//onerror
}
});
Wie kann ich in dem Dokument ajax.php
, absichtlich einen Fehler melden? Reicht es aus, nur einen 400 HTTP-Statuscode oder etwas zu werfen? (Und wenn ja, ist 400 die richtige?)
Warum ich frage ist, dass ich diese verwenden mag ein Formular an den Server zu übermitteln, und wenn ein Feld nicht richtig ausgefüllt wird, möchte ich den Benutzer durch den Fehlerparameter in $.ajax
aufmerksam zu machen. Ich weiß, ich könnte in erster Linie diese mit Hilfe von Javascript zu tun, aber ich hoffe, ich es auf diese Weise tun könnte (so dass ich nicht der Prüfung zwei Mal schreiben müssen). Aber natürlich, indem sie es auf diese Weise tut, kann ich die verschiedene Felder von dem anderen nicht trennen.
Nach dem, was ich will, es benutzen für, kann ich werfen irgendwie einen „individuellen Fehler“ , also wenn das Feld name
wurde nicht richtig ausgefüllt, den Namen des Feldes zurück (dh name
). Ist es ausreichend, so etwas zu tun:
In ajax.php:
if (isFilledOutProperly($name) == false) {
echo "name";
}
else {
echo "success";
}
Und:
success: function(data) {
if (data == 'name') {
//error
}
else {
//success
}
},
ich auf dem falschen Weg hier sein kann, aber wenn jemand einen besseren Vorschlag hat, wie ich dies tun können, erklären Sie mir bitte. Dank!
Lösung
Die error
Klausel $.ajax()
Anrufe ist nicht wirklich für den Umstand Sie sich beziehen. error
deckt Fälle von, sagen wir, HTTP-Fehler. Validation Ausfälle sind nicht wirklich Fehler in diesem Fall. Du bist besser dran die in dem success
Rückruf mit entsprechenden Daten, die vom Server zurückgegeben.
Wenn Sie die Dokumentation sehen:
error(XMLHttpRequest, textStatus, errorThrown)Function
Eine Funktion, wenn die Anforderung aufgerufen werden schlägt fehl. Die Funktion wird drei bestanden Argumente: Das XMLHttpRequest-Objekt, eine Zeichenkette, die die Art von Fehler beschreibt dass aufgetreten und ein optional Ausnahmeobjekt, wenn man aufgetreten. Mögliche Werte für die zweite Argument (außer null) ist "timeout", „Fehler“, „notmodified“ und "Parser Fehler". Dies ist ein Ajax Ereignis .
. Hinweis: die Fehlerbedingungen es darüber spricht, sind Parse-Fehler, Timeouts, Fehler (HTTP) und nicht geändert (das ist eine andere HTTP-Antwort)
Technisch Ihre Anforderung erfolgreich ist, aber die Validierung fehlschlägt, was per se kein Fehler ist.