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

JSON Server发送POST请求仅插入Id无其他内容问题排查求助

问题原因

出现该现象的核心原因是JSON Server未正常解析你提交的请求体内容,常见诱因如下:

  • 请求头缺失Content-Type: application/json:这是该类问题最高发的诱因。JSON Server只会对携带该请求头的POST请求解析请求体中的JSON字段,否则只会自动生成(或忽略你提交的)id字段返回,不会写入其他内容。你提交的id为99但返回id为9,也符合请求体未被解析、JSON Server自动按自增规则生成id的特征。
  • 请求路径与目标资源不匹配:若你要写入posts数组,但请求路径错误发送到了/post、/category等不匹配的路径,JSON Server开启自动创建资源配置时,只会生成仅带id的空对象。
  • 自定义配置拦截了请求体:若启动JSON Server时加载了自定义中间件、路由规则,可能存在配置错误清空了请求体数据的情况。
  • 提交的JSON存在语法错误:实际请求的JSON若存在引号未闭合、末尾多余逗号等语法问题,会导致JSON Server解析失败,仅保留id字段。
修复方案

按优先级逐一排查验证即可:

  1. 检查POST请求的请求头,确保添加了Content-Type: application/json,可通过浏览器开发者工具的网络面板、接口测试工具的请求详情页确认实际发出的请求头配置。
    你可以用curl命令做基准测试验证该问题:
curl -X POST -H "Content-Type: application/json" -d '{"title":"测试","category":"React-Development","imageUrl":"https://cdn.pixabay.com/photo/2015/04/23/22/00/tree-736885_1280.jpg","text":"测试内容","date":"2023-10-01"}' http://localhost:3000/posts

正常会返回包含所有提交字段+id的完整对象。
2. 确认请求路径与db.json中定义的资源键名完全一致,写入posts数组的请求地址应为http://<你的服务地址>/posts。
3. 先用默认配置启动JSON Server测试:json-server db.json,排除自定义中间件、路由的影响,验证正常后再逐步排查自定义配置的问题。
4. 校验提交的请求体JSON格式是否合法,避免存在语法错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 15:24:03