You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

新手求助:如何通过jQuery AJAX POST请求正确传递变量并在服务器端获取?

解决jQuery AJAX POST请求后服务器端req.body为undefined的问题

嘿,我来帮你搞定这个问题~你遇到的req.body显示undefined的核心原因是Express服务器默认不会自动解析POST请求的请求体,得先配置对应的中间件来处理请求数据,下面是具体的解决步骤:

1. 配置Express请求体解析中间件

Express(4.16版本及以上)自带了请求体解析的中间件,不需要额外安装body-parser,直接在你的主服务器文件(比如app.js或者引入router的文件)里添加以下代码,注意要放在路由定义之前:

// 处理application/x-www-form-urlencoded格式的数据(jQuery AJAX默认发送的格式)
app.use(express.urlencoded({ extended: true }));
// 可选:如果需要处理JSON格式的请求,加上这行
app.use(express.json());

如果你的Express版本低于4.16,需要先安装body-parser依赖:

npm install body-parser

然后引入并使用:

const bodyParser = require('body-parser');
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());

2. 优化前端AJAX代码(可选但更稳妥)

你的前端代码本身逻辑没问题,但可以明确指定contentType,避免潜在的格式识别问题:

修改inventory.js中的AJAX配置:

$('form').on('submit', function() { 
  var temp = {test: 0}
  $.ajax({ 
    type: 'POST', 
    url: '/inventoryactionbtn', 
    data: temp, 
    contentType: 'application/x-www-form-urlencoded; charset=UTF-8', // 明确指定请求格式
    success: function(data) { 
      console.log('服务器响应:', data); // 可以在这里打印服务器返回的内容
    } 
  }); 
  return false; 
})

3. 完善服务器端代码

现在req.body就能正确获取到前端发送的数据了,你可以直接打印整个对象或者具体属性,另外记得给前端返回响应,避免请求一直处于pending状态:

修改Index.js中的路由处理:

router.post('/inventoryactionbtn', ensureAuthenticated, function(req, res) { 
  var testing = req.body;
  console.log('收到的请求数据:', testing); // 现在会输出 { test: 0 }
  console.log('test字段的值:', testing.test); // 也可以单独获取具体属性
  // 返回响应给前端
  res.status(200).json({ message: '数据接收成功', receivedData: testing });
})

额外:如果想发送JSON格式的数据

如果你希望前端发送JSON格式的请求,只需要调整前端代码,把数据转成JSON字符串并修改contentType:

$('form').on('submit', function() { 
  var temp = {test: 0}
  $.ajax({ 
    type: 'POST', 
    url: '/inventoryactionbtn', 
    data: JSON.stringify(temp), 
    contentType: 'application/json',
    success: function(data) { 
      console.log('服务器响应:', data);
    } 
  }); 
  return false; 
})

这时候服务器端因为已经配置了express.json()中间件,依然能正确解析req.body。

内容的提问来源于stack exchange,提问作者SpringerJerry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 15:32:36