我有一个简单的表单,我只想查看哪些字段发送到服务器。但在服务器端,我只获得<input type="text">
字段值。为什么服务器无法获得<select>
和<input type="file" />
值?
HTML:
<form action="http://localhost:8100/" method="POST">
<div>
<select>
<option value="op1" selected="selected">Option1</option>
<option value="op2">Option2</option>
</select>
</div>
<div>
<input type="file" value="select a file"/>
</div>
<div>
<label>Your Hero: </label><input type="text" name="hero" />
</div>
<input type="submit" value="submit" />
</form>
服务器:
var http = require("http");
http.createServer(function(req, res) {
if (req.method == 'POST') {
var body = '';
req.on('data', function (data) {
body += data;
console.log(body);
});
req.on('end', function () {
console.log("request data complete");
});
res.end("post request");
} else {
res.end("get request");
}
}).listen(8100);
答案 0 :(得分:1)
您的select
和file input
元素缺少name
属性。您希望提交的所有表单元素都必须具有唯一的name
属性。 name
属性将是通过POST和GET提交数据时元素值的标识符。
您可以在此处的规范中阅读相关内容:http://www.w3.org/TR/html5/forms.html#naming-form-controls:-the-name-attribute
答案 1 :(得分:1)
我想你忘了这个表格中的“名字”属性。添加它,它应该工作。干杯