/ / Verhindern Sie das Senden von doppelten Daten mit GET - google-apps-script

Verhindern Sie das Senden doppelter Daten mit GET - google-apps-script

Ich habe ein benutzerdefiniertes Formular erstellt, an das alle Daten gesendet werdenGoogle Spreadsheet über ein einfaches Google Script mit der GET-Methode. Nach dem Absenden des Formulars zeige ich eine Danke-Seite, die auf GS gehostet und über HtmlService aufgerufen wird. Die URL dieser Seite enthält alle Werte des Formulars. Wenn ich die Dankeschön-Seite aktualisiere, werden in meiner Tabelle doppelte Daten angezeigt.

Ich habe verschiedene Methoden zum Einstellen eines Timers ausprobiertUmleitung auf eine andere Seite nach 5 Sekunden ohne Erfolg. Etwas blockiert mein Skript. (Ich weiß, dass es funktioniert, weil ich eine Warnung anzeigen kann, die Seite jedoch nicht automatisch umleiten kann).

Gibt es eine Option, um doppelte Daten zu verhindernzur Kalkulationstabelle geschickt werden? Es ist mir egal, ob es ein Timeout für die Danke-Seite gibt (was relativ einfach sein sollte) oder ein eindeutiges Token für jedes Senden.

Vielen Dank.

Antworten:

0 für die Antwort № 1

Das eigentliche Problem ist, dass Sie eine HTML-Seite habenDadurch werden Daten an Gas übermittelt, indem der Benutzer auf einen Link geklickt oder umgeleitet wird. Stattdessen müssen Sie Gas mit Ajax holen aufrufen, und Ihre HTML-Seite (nicht Gas) zeigt die Danke-Seite.


0 für die Antwort № 2

Daten wie diese sollten mit einem POST gesendet werden, nicht mit einem GET.

Versuchen Sie, doPost (e) anstelle von doGet () in Ihrem veröffentlichten Skript zu verwenden, und senden Sie die Daten in das Skript.


0 für die Antwort № 3

Wenn die Seite "Danke" aktualisiert wird, werden die Daten erneut an Ihre Kalkulationstabelle gesendet

Die URL der Seite enthält alle Werte des Formulars

Dann haben Sie irgendwie die GET-Anfrage kombiniertund das Servieren der Dankeseite. Das muss getrennt werden. Sie müssen die Danke-Seite bereitstellen, ohne die Werte des Formulars in die URL aufzunehmen. Selbst wenn die Dankeseite keine Daten enthält und kein Formular enthält. Wenn die URL eine andere Anfrage auslöst, werden die Daten erneut gesendet.