Comment puis-je définir un champ personnalisé dans l'en-tête POST lors de la soumission d'un formulaire?
javascript
html
post
http-post
httprequest
Reza Owliaei
la source
la source
XmlHttpRequest
vous dire? Ou juste un simple message HTML FORM?Réponses:
Cela ne peut pas être fait - AFAIK.
Cependant, vous pouvez utiliser par exemple jquery (bien que vous puissiez le faire avec du javascript brut) pour sérialiser le formulaire et l'envoyer (en utilisant AJAX) tout en ajoutant votre en-tête personnalisé.
Regardez la jquery
serialize
qui transforme un FORMULAIRE HTML enform-url-encoded
valeurs prêtes pour le POST.METTRE À JOUR
Ma suggestion est d'inclure soit
la source
Définissez une valeur de cookie sur la page, puis lisez-la côté serveur.
Vous ne pourrez pas définir d'en-tête spécifique, mais la valeur sera accessible dans la section des en-têtes et non dans le corps du contenu.
la source
À partir de la documentation FormData :
Avec un
XMLHttpRequest
vous pouvez définir les en-têtes personnalisés, puis effectuer lePOST
.la source
En fait, une meilleure façon de le faire est d'enregistrer un cookie côté client. Ensuite, le cookie est automatiquement envoyé avec chaque en-tête de page pour ce domaine particulier.
Dans node-js, vous pouvez configurer et utiliser des cookies avec cookie-parser .
un exemple:
Vous pouvez maintenant accéder à ceci:
Notez que cela
httpOnly:true
garantit que le cookie n'est généralement pas accessible manuellement ou via javascript et que seul le navigateur peut y accéder. Si vous souhaitez envoyer des en-têtes ou des jetons de sécurité avec un message de formulaire, et non via ajax, dans la plupart des cas, cela peut être considéré comme un moyen sécurisé. Assurez-vous cependant que les données sont envoyées via un protocole sécurisé / ssl si vous stockez des informations sensibles liées à l'utilisateur, ce qui est généralement le cas.la source
Voici ce que j'ai fait dans pub / jade
la source
Si vous utilisez JQuery avec le plugin Form, vous pouvez utiliser:
Source: https://stackoverflow.com/a/31955515/9469069
la source
Vous pouvez utiliser $ .ajax pour éviter le comportement naturel de
<form method="POST">
. Vous pouvez, par exemple, ajouter un événement au bouton de soumission et traiter la requête POST comme AJAX.la source
Pour ajouter à chaque demande ajax, j'y ai répondu ici: https://stackoverflow.com/a/58964440/1909708
Pour ajouter des requêtes ajax particulières, voici comment j'ai implémenté:
Vous devez ajouter les
meta
éléments dans le JSP, par exemplePour ajouter à une demande de soumission de formulaire (synchrone), j'y ai répondu ici: https://stackoverflow.com/a/58965526/1909708
la source