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

通过POST发送JS变量ownerSteamId时服务器日志为空对象,求解决方案

问题原因

服务器端配置了bodyParser.json(),只会解析Content-Type为application/json的请求体,但客户端发送的请求Content-Type设为text/html,且请求体是纯字符串,导致JSON解析器无法识别,最终request.body为空对象。

解决方案

有两种可行的修改方式,根据需求选择:

方式一:客户端发送JSON格式数据(推荐)

将请求的Content-Type改为application/json,并把要发送的ID包装成JSON字符串:

const ownerSteamId = '76561198034202275';

const options = {
    method: 'POST',
    headers: {
        'Content-Type': 'application/json'
    },
    body: JSON.stringify({ ownerSteamId })
};
fetch('/api', options);

服务器端无需修改,此时console.log(request.body)会输出:

{ ownerSteamId: '76561198034202275' }

如果只想打印ID值,可以改为:

console.log(request.body.ownerSteamId)

方式二:服务器添加文本解析中间件

保持客户端代码不变,在服务器端添加解析text/html类型请求体的中间件:

const express = require('express');
const app = express();
const bodyParser = require('body-parser');

app.listen(3000, () => console.log('listening at 3000'));

app.use(express.static('public'));
app.use(bodyParser.json());
// 添加解析text/html类型的文本中间件
app.use(bodyParser.text({ type: 'text/html' }));

app.post('/api', (request, response) => {
    console.log(request.body) // 直接输出76561198034202275
});

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:45:40