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

JSON Server伪REST API POST请求提交数据未存入接口问题

问题根因

你当前使用的是Typicode官方托管的在线JSON Server服务,该服务天生不支持持久化写入操作,所有POST、PUT、DELETE类修改请求只会返回模拟的成功响应,不会实际修改你绑定的GitHub仓库中的db.json文件,也不会将提交的数据持久存储,后续重新请求接口或者刷新页面后数据就会恢复到初始状态。

你当前代码的then回调没有对接口返回的响应做校验,只是默认请求成功就执行后续逻辑,所以即使没有实际写入数据,也会打印成功日志。你可以通过如下方式验证服务的行为:

fetch("https://my-json-server.typicode.com/<github_id>/<github_repo>/blogs/", {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify(blog),
    }).then(res => {
      // 打印响应状态和返回数据,你会看到返回201创建成功,但数据仅为模拟返回,未实际存储
      console.log(res.status)
      return res.json()
    }).then(resData => {
      console.log("接口返回数据", resData)
      console.log("blog added");
      console.log(blog);
      setTitle("");
      setBody("");
      setAuthor("adam");
      setIsLoading(false);
      history.push("/");
    });

解决方案

  • 本地部署JSON Server使用:全局安装json-server依赖,启动时指定本地的db.json文件并加上--watch参数,这种场景下所有写入操作都会真实修改本地的db.json文件,数据会持久生效。
  • 若需要在线可写入的Mock接口,可自行在云服务器部署JSON Server并开启写入权限,或更换为其他支持持久化存储的Mock服务。
  • 如果是本地启动的JSON Server也出现该问题,检查启动命令是否遗漏--watch参数,未加该参数时服务不会把写入操作同步到本地文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 08:51:02