Express 获取 POST请求参数为undefined?【已解决】

在使用Express处理POST请求时,遇到获取参数返回undefined或{}的问题。原因是Express默认不支持除application/x-www-form-urlencoded以外的格式。解决方案是在客户端设置请求头为'Content-Type': 'application/x-www-form-urlencoded',并在服务器端引入并使用解析请求体的中间件,如body-parser。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 express 中获取 post 请求参数时会返回 {} 或者 undefined

问题原因: Express默认只支持jsonx-www-form-urlencoded格式的数据.

解决办法:
在请求中需要设置Content-typeapplication/x-www-form-urlencoded

init();
function init() {
   
   
  var xhr = new XMLHttpRequest();
  xhr
Express 中设置 POST 请求有几个步骤: 1. 首先,确保你已经安装了 Express 框架并在你的项目中引入了它。你可以使用以下命令安装 Express: ``` npm install express ``` 2. 在你的应用程序中,使用 `require` 引入 Express 模块: ```javascript const express = require('express'); const app = express(); ``` 3. 添加一个路由来处理 POST 请求。使用 app.post() 方法来定义一个 POST 请求的路由,并传入对应的路径和回调函数。在回调函数中,你可以处理 POST 请求的逻辑: ```javascript app.post('/your-route', (req, res) => { // 处理 POST 请求的逻辑 }); ``` 4. 在回调函数中,你可以通过 `req.body` 对象来获取 POST 请求中的数据。但是在 Express 中,默认情况下,`req.body` 是 undefined,因为 Express 并没有内置的请求体解析器。你需要使用中间件来解析请求体。最常用的中间件是 `body-parser`。 先安装 `body-parser`: ``` npm install body-parser ``` 然后在应用程序中引入并使用它: ```javascript const bodyParser = require('body-parser'); app.use(bodyParser.urlencoded({ extended: true })); ``` 这样,`req.body` 就可以用来获取 POST 请求中的数据了。 5. 最后,启动你的 Express 应用程序: ```javascript app.listen(3000, () => { console.log('应用程序已启动在端口 3000'); }); ``` 以上就是在 Express 中设置 POST 请求的基本步骤。你可以根据具体的需求进行进一步的处理和逻辑编写。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值