Post表单在node.js测试邮差与浏览器



我发布了一个表单到node.js服务器与邮差chrome工具的工作并显示如下结果

{"username":"dagimasdsdaa","password":"dagimpassmea"}

,但使用我的浏览器与HTML标记,如下所示,它不能正确发布和输出

{"用户名":","密码":"}

不知道为什么?任何帮助吗?

itemsRouter.route('/login')
    .post(function(req,res){
        // `file` is the name of the <input> field of type `file`
        var formdata={'username':'','password':''};
        var form = new formidable.IncomingForm();
        form.parse(req, function(err, fields) {
            formdata.username=fields.username;
            formdata.password=fields.password;
        });
        res.json(formdata);
        res.end();
    });

我的HTML标记看起来像这样,这对我来说似乎很好

                  <form  action="/login" method="post">
                            <div >
                                <div class="form-group"  style="padding-bottom: 30px;">
                                    <label  class="col-sm-2 control-label">Username</label>
                                    <div class="col-sm-10">
                                        <input type="text" class="form-control" name="username" placeholder="Email">
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label  class="col-sm-2 control-label">Password</label>
                                    <div class="col-sm-10">
                                        <input type="password" class="form-control"   name="password" placeholder="Password">
                                    </div>
                                </div>
                            <br/>
                            </div>
                            <div >
                                <button type="submit" style="margin-top: 5px;margin-bottom: 8px;margin-right: 14px" class="btn btn-facebook pull-right">Sign in</button>
                            </div>
                        </form>

发现我没有为浏览器接收的html设置enctype

"内容类型":"应用程序/x-www-form-urlencoded",

默认为

,但我已将表单解析为

enctype ="多部分/格式"

所以最终的HTML标记看起来像这样
<form  action="/login" enctype='multipart/form-data' method="post">
                            <div >
                                <div class="form-group"  style="padding-bottom: 30px;">
                                    <label  class="col-sm-2 control-label">Username</label>
                                    <div class="col-sm-10">
                                        <input type="text" class="form-control" name="username" placeholder="Email">
                                    </div>
                                </div>
                                <div class="form-group">
                                    <label  class="col-sm-2 control-label">Password</label>
                                    <div class="col-sm-10">
                                        <input type="password" class="form-control"   name="password" placeholder="Password">
                                    </div>
                                </div>
                            <br/>
                            </div>
                            <div >
                                <button type="submit" style="margin-top: 5px;margin-bottom: 8px;margin-right: 14px" class="btn btn-facebook pull-right">Sign in</button>
                            </div>
                        </form>

最新更新