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

React中Fetch POST请求json-server时JSON原有数据被全部移除如何解决

问题原因

json-server严格遵循REST接口语义规范:

  • 当请求路径指向单一对象资源(本次/options对应JSON根节点下的options对象,不属于数组集合类资源)时,POST/PUT方法的默认行为是整体覆盖替换目标资源,请求体传入什么内容,目标资源就会被直接替换成对应内容,因此原有字段会全部丢失。
  • 局部字段更新需要使用PATCH方法,该方法只会覆盖请求体内声明的字段,其余原有字段会被保留。

修复方案

将请求的method参数从POST改为PATCH即可,修改后代码如下:

//Update JSON
const updateOptions = async () => { 
  const res = await fetch('http://localhost:5000/options', {
    method: 'PATCH',
    headers: {
      'Content-type': 'application/json'
    },
    body: JSON.stringify({score: 10})
  })
}

修改后重新发起请求,只会更新score字段,gametype、gamecat两个原有字段会正常保留。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 14:06:04