123 votes

Comment lire les paramètres de la requête post en utilisant JavaScript

J'essaie de lire les paramètres de la requête post à partir de mon HTML. Je peux lire les paramètres de la requête get en utilisant le code suivant en JavaScript.

$wnd.location.search

Mais cela ne fonctionne pas pour la demande de poste. Quelqu'un peut-il me dire comment lire les valeurs des paramètres de la requête post dans mon HTML en utilisant JavaScript ?

3voto

user3260912 Points 111

Si vous travaillez avec une API Java / REST, une solution de contournement est facile. Dans la page JSP, vous pouvez faire ce qui suit :

    <%
    String action = request.getParameter("action");
    String postData = request.getParameter("dataInput");
    %>
    <script>
        var doAction = "<% out.print(action); %>";
        var postData = "<% out.print(postData); %>";
        window.alert(doAction + " " + postData);
    </script>

2voto

ssut Points 421

Vous pouvez lire le paramètre de la requête post avec jQuery-PostCapture( @ssut/jQuery-PostCapture ).

Le plugin PostCapture est composé de quelques astuces.

Lorsque vous cliquez sur le bouton d'envoi, l'écran onsubmit sera envoyé.

À ce moment-là, PostCapture sérialise les données du formulaire et les enregistre dans le stockage local html5 (si disponible) ou dans le stockage des cookies.

2voto

Louis Hervé Points 53

J'ai un code simple pour le faire :

Dans votre index.php :

<input id="first_post_data" type="hidden" value="<?= $_POST['first_param']; ?>"/>

Dans votre main.js :

let my_first_post_param = $("#first_post_data").val();

Ainsi, lorsque vous inclurez main.js dans index.php ( <script type="text/javascript" src="./main.js"></script> ) vous pourriez obtenir la valeur de votre entrée cachée qui contient les données de votre message.

1voto

kiranvj Points 3551

POST est ce que le navigateur envoie du client (votre navigateur) au serveur web. Les données Post sont envoyées au serveur via les en-têtes http, et elles ne sont disponibles qu'à l'extrémité du serveur ou entre le chemin (exemple : un serveur proxy) du client (votre navigateur) au serveur web. Il ne peut donc pas être géré à partir de scripts côté client comme JavaScript. Vous devez le gérer via des scripts côté serveur comme CGI, PHP, Java etc. Si vous avez toujours besoin d'écrire en JavaScript, vous devez avoir un serveur web qui comprend et exécute JavaScript sur votre serveur, comme Node.js.

1voto

William R. Points 143

Cela dépend de ce que vous définissez comme JavaScript. De nos jours, nous avons réellement du JS dans les programmes côté serveur tels que NodeJS. C'est exactement le même JavaScript que vous codez dans votre navigateur, sauf qu'il s'agit d'un langage serveur. Vous pouvez donc faire quelque chose comme ceci : ( Code par Casey Chu : https://stackoverflow.com/a/4310087/5698805 )

var qs = require('querystring');

function (request, response) {
    if (request.method == 'POST') {
        var body = '';

        request.on('data', function (data) {
            body += data;

            // Too much POST data, kill the connection!
            // 1e6 === 1 * Math.pow(10, 6) === 1 * 1000000 ~~~ 1MB
            if (body.length > 1e6)
                request.connection.destroy();
        });

        request.on('end', function () {
            var post = qs.parse(body);
            // use post['blah'], etc.
        });
    }
}

Et à partir de là, utiliser post['key'] = newVal; etc...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X