Wenn $ Schnipsel in jQuery verwenden, wie kann ich absichtlich einen Fehler in dem geladenen Dokument werfen?

StackOverflow https://stackoverflow.com/questions/2212964

  •  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!

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top