Das doppelte Senden von Formularen ist das häufigste Problem bei Mehrbenutzer-Webanwendungen und verursacht viel Ärger. Es gibt viele Anwendungsszenarien, bei denen Probleme mit der doppelten Übermittlung auftreten, z. B.:
Klicken Sie zweimal auf die Schaltfläche „Senden“. Klicken Sie auf die Schaltfläche „Aktualisieren“. Verwenden Sie die Zurück-Schaltfläche des Browsers, um die vorherige Aktion zu wiederholen, was zu wiederholten Formularübermittlungen führt. Senden Sie das Formular wiederholt mithilfe des Browserverlaufs. Doppelte HTTP-Anfragen vom Browser.
Mehrere Möglichkeiten, um das wiederholte Einsenden von Formularen zu verhindern
1. Deaktivieren Sie die Schaltfläche „Senden“ . Verwenden Sie Javascript, um die Schaltfläche „Senden“ nach dem Absenden des Formulars zu deaktivieren. Dieser Ansatz verhindert, dass ungeduldige Benutzer mehrmals auf die Schaltfläche klicken. Es gibt jedoch ein Problem. Wenn der Client Javascript deaktiviert, ist diese Methode ungültig.
Ich habe in meinem vorherigen Artikel gesagt, dass die Verwendung einiger JQuery-Plug-Ins gut funktioniert.
2.Post-/Redirect-/Get-Modus. Bei der Seitenumleitung nach der Übermittlung handelt es sich um das sogenannte Post-Redirect-Get-Muster (PRG). Kurz gesagt: Wenn der Benutzer das Formular absendet, führen Sie eine clientseitige Umleitung durch und gelangen zur Seite mit den Informationen zum Übermittlungserfolg.
Dadurch können wiederholte Übermittlungen vermieden werden, die durch das Drücken von F5 durch den Benutzer verursacht werden, und es wird keine Warnung vor wiederholten Übermittlungen des Browserformulars angezeigt. Außerdem können dieselben Probleme beseitigt werden, die durch das Drücken der Vorwärts- und Rückwärtstasten des Browsers verursacht werden.
3. Speichern Sie ein spezielles Flag in der Sitzung. Wenn die Formularseite angefordert wird, wird eine spezielle Zeichenfolge generiert, in der Sitzung gespeichert und im ausgeblendeten Feld des Formulars platziert. Überprüfen Sie beim Akzeptieren und Verarbeiten von Formulardaten, ob die Identifikationszeichenfolge vorhanden ist, löschen Sie sie sofort aus der Sitzung und verarbeiten Sie die Daten dann normal.
Wenn festgestellt wird, dass in der Formularübermittlung keine gültige Flag-Zeichenfolge vorhanden ist, bedeutet dies, dass das Formular bereits übermittelt wurde und diese Übermittlung ignoriert wird.
Dies verleiht Ihrer Webanwendung einen erweiterten XSRF-Schutz.
4. Fügen Sie der Datenbank Einschränkungen hinzu. Fügen Sie eindeutige Einschränkungen hinzu oder erstellen Sie eindeutige Indizes in der Datenbank, um doppelte Daten zu verhindern. Dies ist die wirksamste Möglichkeit, eine doppelte Übermittlung von Daten zu verhindern.
Das Obige ist die Einführung dieser 4 Methoden, teilen Sie uns dies bitte mit. Dieser Artikel wird weiterhin aktualisiert.