HTML 表单请求正文为空 - NodeJs

标签 html node.js forms postman

我尝试使用 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/

相关文章:

node.js - 数据存储区未删除实体

node.js - 使用域和 socket.io 的 Nodejs 错误处理

forms - angular - 在指令中的表单元素之间动态更改验证要求

php - 同一页面上的联系表单错误消息

html - 强制 <div> 留在一个地方

javascript - 显示子部分时在父 div 上扩展过渡

html - CSS 嵌套滚动条以 100% 宽度与动态内容重叠

javascript - 获取表单更改时的元素 id

node.js - 停止监听特定端口的 Node 服务器

javascript - 当我不希望页面重新加载时