HTML表单请求主体为空 – NodeJs
我正在使用Node.js创build一个API POST并expression。 我只是想使用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)); })
在控制台上收到的是:request:{}
试图张贴到相同的API使用邮递员 – 原始,JSON(应用程序/ JSON),事情工作正常。
有人可以告诉我什么是我在做什么错?
浏览器不支持将HTML表单作为application / json提交。 大多数浏览器可能会忽略该值并将该表单作为application / x-www-form-urlencoded的默认enctype
发送。 要parsing这个,你需要使用一个合适的中间件。 一个这样的例子是body-parser
模块的urlencoded()
中间件 。
在action属性中,你不需要指定主机只是指定path如“ / add ”。