我尝试使用 Node.js 和 Express 创建 API POST。我只是想使用 html 表单发布一些数据:
<form id="myform" action="http://localhost:4000/add" method="post" enctype="application/json">
<input type="text" name="name" id="name" />
<input type="submit" id="submit" />
</form>
服务器只会接收 POST 请求并将正文显示到 console.log 中。
router.post('/add', function (req, res){
console.log("request: "+JSON.stringify(req.body));
})
控制台收到的内容是: 请求:{}
尝试使用 Postman - raw、JSON(应用程序/JSON)发布到相同的 api,一切正常。
有人可以告诉我我所做的事情有什么问题吗?
最佳答案
浏览器不支持将 HTML 表单提交为 application/json。大多数浏览器可能会忽略该值并将表单作为默认 enctype
发送,即 application/x-www-form-urlencoded。要解析它,您需要使用适当的中间件。一个这样的例子是 body-parser
模块的 urlencoded()
middleware .
关于HTML 表单请求正文为空 - NodeJs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44583277/