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

如何使用JavaScript修改服务端JSON文件 本地测试不生效问题问询

你当前的两段代码仅实现了从服务端拉取JSON文件、修改浏览器内存中解析得到的JS对象的逻辑,没有将修改后的数据回传给服务端,也没有对应的服务端逻辑处理写入请求,因此修改只会在内存中生效,不会更新实际存储的服务端文件。

实现方案

1. 前端新增提交修改的请求

需要在修改完内存中的JSON对象后,将其序列化为JSON字符串,通过POST请求提交给服务端的处理接口,参考代码如下:

let xmlreq = new XMLHttpRequest()
xmlreq.open("GET","users.json",true)
xmlreq.onload = function() {
  if (xmlreq.status === 200) {
    test(xmlreq.responseText)
  }
}
xmlreq.send()

function test(rawJson) {
  const obj = JSON.parse(rawJson);
  // 修改内存中的对象
  obj.user1.name="john";
  obj.user2.push("item");
  console.log('修改后的对象: ', obj);

  // 提交修改后的数据到服务端
  const updateReq = new XMLHttpRequest();
  // 接口地址对应服务端的写入处理逻辑地址
  updateReq.open("POST", "update_users.php", true);
  updateReq.setRequestHeader("Content-Type", "application/json;charset=UTF-8");
  updateReq.onload = function() {
    if (updateReq.status === 200) {
      console.log('文件修改成功', updateReq.responseText);
    }
  }
  updateReq.send(JSON.stringify(obj));
}

2. 服务端新增写入文件的处理逻辑

需要在服务端写对应接口接收前端提交的JSON数据,校验后写入到目标JSON文件中。以下以PHP为例,其他后端语言(Node.js、Python等)逻辑一致:
新建update_users.php文件,代码如下:

<?php
// 读取前端提交的JSON数据
$postData = file_get_contents('php://input');
$newJsonData = json_decode($postData, true);
// 校验数据格式合法性
if (json_last_error() !== JSON_ERROR_NONE) {
  http_response_code(400);
  echo '数据格式错误';
  exit;
}
// 写入到users.json文件,需提前给users.json文件配置写入权限
$writeRes = file_put_contents('users.json', json_encode($newJsonData, JSON_UNESCAPED_UNICODE|JSON_PRETTY_PRINT));
if ($writeRes) {
  echo '修改成功';
} else {
  http_response_code(500);
  echo '写入失败,请检查文件权限';
}
?>

注意事项

  • 本地测试必须启动对应后端服务,不能直接双击打开HTML文件运行,否则请求无法被后端处理。
  • 生产环境使用时必须添加权限校验逻辑,避免未授权用户恶意修改服务端文件。

内容的提问来源于stack exchange,提问作者Hüseyin Cuma

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 04:51:01