Javascript 快速请求正文在表单提交中为空
我有下面的表单,提交它会导致一个空的Javascript 快速请求正文在表单提交中为空,javascript,node.js,express,Javascript,Node.js,Express,我有下面的表单,提交它会导致一个空的req.body这是我的HTML: <form action="/contact" name="contactUs" id="contactUs" method="POST"> <label for="email">Email Message</label> <input type="text" name="email" id="email"> <input type="submit" va
req.body
这是我的HTML:
<form action="/contact" name="contactUs" id="contactUs" method="POST">
<label for="email">Email Message</label>
<input type="text" name="email" id="email">
<input type="submit" value='Save'>
</form>
console.log
工作正常。但是,我为req.body
获取了一个空对象 您以HTML帖子的形式提交,这意味着您正在使用内容类型:application/x-www-form-urlencoded
这意味着您需要添加app.use(express.urlencoded({extended:false}))
,这种方式express可以解析该请求并将其放入req.body
您的输入标记未关闭/>
@chsdk-他们没有暗示他们正在使用XHTML,因此元素已关闭。@Quentin好吧,这是一种不好的做法,我们应该提到它。@chsdk-这不是一种不好的做法。膨胀的HTML带有可选功能,旨在使其与XML兼容,这是毫无意义的,也是对字节的浪费。谢谢bruce。非常感谢根据您的表单数据,如果您有简单的文本/数字/电子邮件/密码字段,我发现我的req.body
在我的提交表单中明确提到enctype=“text/html”
后就开始填充。到目前为止仍然有用。非常感谢。
app.use(bodyParser.json());
app.use("/", expressStaticGzip("dist"));
app.post("/contact", (req, res) => {
console.log('anyone there?')
res.json(req.body);
});