Wie kann ich beim Senden eines Formulars ein benutzerdefiniertes Feld im POST-Header festlegen?
javascript
html
post
http-post
httprequest
Reza Owliaei
quelle
quelle
XmlHttpRequest
dir meinen? Oder nur ein einfacher HTML-FORM-Beitrag?Antworten:
Es kann nicht gemacht werden - AFAIK.
Sie können jedoch beispielsweise jquery verwenden (obwohl Sie dies mit einfachem Javascript tun können), um das Formular zu serialisieren und zu senden (unter Verwendung von AJAX), während Sie Ihren benutzerdefinierten Header hinzufügen.
Schauen Sie sich die Abfrage an,
serialize
die ein HTML-FORMULAR inform-url-encoded
POST-fähige Werte ändert .AKTUALISIEREN
Mein Vorschlag ist, entweder aufzunehmen
quelle
Legen Sie einen Cookie-Wert auf der Seite fest und lesen Sie ihn dann auf der Serverseite zurück.
Sie können keinen bestimmten Header festlegen, aber auf den Wert kann im Abschnitt "Header" und nicht im Inhaltskörper zugegriffen werden.
quelle
Aus der FormData- Dokumentation:
Mit einem können
XMLHttpRequest
Sie die benutzerdefinierten Header festlegen und dann das tunPOST
.quelle
In der Tat eine bessere Möglichkeit, um ein Cookie auf der Client-Seite zu speichern. Dann wird das Cookie automatisch mit jedem Seitenkopf für diese bestimmte Domain gesendet.
In node-js können Sie Cookies mit dem Cookie-Parser einrichten und verwenden .
ein Beispiel:
Jetzt können Sie darauf zugreifen:
Beachten Sie, dass
httpOnly:true
sichergestellt ist, dass auf das Cookie normalerweise nicht manuell oder über Javascript zugegriffen werden kann und nur der Browser darauf zugreifen kann. Wenn Sie einige Header oder Sicherheitstoken mit einem Formularbeitrag und nicht über Ajax senden möchten, kann dies in den meisten Fällen als sicherer Weg angesehen werden. Stellen Sie jedoch sicher, dass die Daten über das sichere Protokoll / SSL gesendet werden, wenn Sie vertrauliche benutzerbezogene Informationen speichern, was normalerweise der Fall ist.quelle
Hier ist was ich in Pub / Jade gemacht habe
quelle
Sie könnten $ .ajax verwenden, um das natürliche Verhalten von zu vermeiden
<form method="POST">
. Sie können beispielsweise der Übermittlungsschaltfläche ein Ereignis hinzufügen und die POST-Anforderung als AJAX behandeln.quelle
Um jede Ajax-Anfrage zu ergänzen, habe ich sie hier beantwortet: https://stackoverflow.com/a/58964440/1909708
Um bestimmte Ajax-Anfragen hinzuzufügen, habe ich Folgendes implementiert:
Sie müssen die
meta
Elemente in der JSP hinzufügen , zUm eine Anfrage zum Senden eines Formulars (synchron) hinzuzufügen, habe ich sie hier beantwortet: https://stackoverflow.com/a/58965526/1909708
quelle