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

使用Fetch调用Express后端时Request Body为空的问题排查

问题原因及解决方法

1. 请求头格式错误

你的script.js里Content-Type头多了个多余的分号:

"Content-Type": "application/json;", // 此处分号属于无效格式

正确写法应为:

"Content-Type": "application/json"

多余的分号会导致后端无法正确识别请求内容类型,进而无法解析请求体。

2. 请求体格式不匹配

你直接将字符串topic通过JSON.stringify转换后发送,此时请求体是纯字符串(比如"初中物理"),但这和你在Postman中发送的JSON对象格式(比如{"topic": "初中物理"})不一致,后端无法正确解析这种纯字符串格式的请求体。

修改script.js的body部分:

body: JSON.stringify({ topic: topic })

3. 后端未配置JSON解析中间件

如果你的后端基于Express框架,必须添加JSON解析中间件才能正确解析JSON请求体,否则request.body会是空对象。在server.js的入口逻辑中添加:

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

// 新增该行代码解析JSON请求体
app.use(express.json());

验证步骤

  1. 修正请求头和请求体格式后重新发送请求
  2. 确认后端已配置JSON解析中间件
  3. 此时后端控制台应能正常打印topic数据

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 14:30:55