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

fetch()无法发送JSON对象,请求体为空问题求助

问题根源与解决方案
  • 核心错误:你把body属性错误嵌套在headers对象内部了。fetch的配置项中,body是和method、headers同级的顶层属性,而非headers的子属性。这个结构错误直接导致请求体未被正确设置,服务器自然接收不到内容。

修正后的代码:

async testPost(){
    const url = 'https://untitled-0clyb6aowq2u.runkit.sh';
    var payload = { "test" : 1 };
    const settings = {
        method: 'POST',
        headers: {
            Accept: 'application/json',
            'Content-Type': 'application/json'
        },
        body: JSON.stringify(payload) // 移至headers外部,与headers同级
    };
    try {
        const resp = await fetch(url, settings);
        const data = await resp.json();
        if(data.ok != 1){
            console.log('FATAL ERROR PIZDEC: ');
            console.log(data);
            return { ok: 0, error: data};
        }
        console.log('Success:' + data.success);
        return;
    }
    catch (e) {
        return { ok: 0, error: e };
    }
}
  • 补充说明:
    • 确保服务器端配置了正确的JSON解析逻辑,比如Express框架需要添加express.json()中间件
    • Postman能正常请求是因为它正确维护了请求体与请求头的层级结构,而你的客户端代码结构错误导致请求体丢失

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 19:30:52