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

使用Axios POST请求无法向Express服务器发送对象数据

解决方案

核心问题:Express未配置JSON请求体解析中间件

Express默认不会自动解析application/json格式的请求体,这就是服务器拿不到数据的原因。你需要在服务器代码中添加express.json()中间件,让Express能解析axios发送的JSON数据。

步骤1:修改Express服务器代码

在你的Express应用中,务必在路由注册之前添加JSON解析中间件:

const express = require('express');
const cors = require('cors');
const app = express();

// 已启用CORS的前提下,先添加JSON解析中间件
app.use(cors());
app.use(express.json()); // 关键!这行必须放在路由前面

// 处理POST请求的路由
app.post('/customers', (req, res) => {
  // 现在req.body就是你从React发送的customerData对象
  console.log('收到的数据:', req.body);
  
  // 后续业务逻辑,比如存入数据库等
  res.status(200).json({ success: true, data: req.body });
});

app.listen(8080, () => {
  console.log('服务器运行在 http://localhost:8080');
});

步骤2:保持axios请求代码不变

你当前的axios代码完全正确,不需要对customerData做JSON.stringify处理——axios会自动将JS对象序列化为JSON字符串,同时设置请求头Content-Type: application/json:

axios
  .post("http://localhost:8080/customers/", customerData)
  .then((res) => {
    console.log(res.data);
  })
  .catch((err) => console.log(err));

验证方法

  1. 打开浏览器开发者工具的Network标签
  2. 触发POST请求,查看对应的请求条目
  3. 检查Request Headers里是否存在Content-Type: application/json
  4. 查看Payload标签,确认发送的数据结构是否与预期一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.23 13:06:23