我发布了一个表单到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",
,但我已将表单解析为
所以最终的HTML标记看起来像这样enctype ="多部分/格式"
<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>