1

jquery post メソッドを使用してノード js サーバーにフォームを送信すると、URL にパラメーターが表示されます。

次のようにapp.jsコードを書きました

          var express = require('express'),
          app = express(),
          server = require('http').createServer(app),

           var bodyParser = require('body-parser');

            app.use(bodyParser.urlencoded({
                 extended: true
             })); 
          app.use(bodyParser.json());

           app.post('/Send', function(req, res){

                 var userName = req.body.Name;
                 var city = req.body.Cname;
                 var pass = req.body.pass; 

           });

index.htmlとして

          <form id="registration" >
           <input type="text" name="user_name" />
           <input type="password" name="pass" />
           <input type="submit" id="button" value="Login" />  
           </form>

           <script>
           $('#button').click(function(){
           $.post( "/Send", $( "#registration" ).serialize());
           }); 
           </script>

URL にパラメータが表示されています。それらを非表示にする方法。

4

2 に答える 2

2

$.post は URL に対して何もしないでください。デモ

デフォルトのフォームの動作を防止していることと、DOM の準備ができていることを確認してください

<form id="registration" >
    <input type="text" name="user_name" />
    <input type="password" name="pass" />
    <input type="submit" id="button" value="Login" />  
</form>

<script>
$(document).ready(function(){
    $('#button').click(function(e){
        e.preventDefault();
        // why capitalize "/Send"? also change route on back-end
        $.post( "/send", $( "#registration" ).serialize(), function(data) {
            // success
        });
    }); 
});
</script>
于 2014-12-11T06:02:59.940 に答える
0

にオブジェクトを提供する必要があります$.post
フォローしてみてください:

function getFormData(id) {
    var data = {};
    var inputs = $('#'+id).serializeArray();
    $.each(inputs, function (i, input) {
        data[input.name] = input.value;
    });
    return data;
}
于 2014-12-11T05:54:06.917 に答える