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

React浏览器扩展中本地JSON加载失败,如何解决?

解决浏览器扩展中fetch加载本地JSON报错TypeError: Failed to fetch的问题

以下是几种常见的排查和解决方向:

  • 检查资源路径与访问方式
    浏览器扩展内的本地资源不能直接用普通相对路径访问(尤其是在content script或popup中),必须用扩展API生成合法的资源URL。正确写法:

    fetch(chrome.runtime.getURL('data.json'))
      .then(res => res.json())
      .then(data => { /* 处理数据 */ })
      .catch(err => console.error(err));
    

    确认JSON文件的位置和路径是否匹配,比如文件放在./assets/data.json,则路径应为'assets/data.json'。

  • 配置Manifest的资源访问权限
    如果是在content script中加载JSON,必须在manifest.json(v3版本)中声明web_accessible_resources,确保content script能访问到该资源:

    "web_accessible_resources": [
      {
        "resources": ["data.json"],
        "matches": ["<all_urls>"] // 根据你的扩展适配范围调整匹配规则
      }
    ]
    

    若使用Manifest v2,直接写成数组即可:"web_accessible_resources": ["data.json"]

  • 排查JSON文件本身问题

    • 用JSON校验工具(比如VSCode的内置校验)检查文件是否存在语法错误(如逗号遗漏、引号不闭合)
    • 确保文件编码为UTF-8,避免乱码导致解析失败
  • 避免协议错误
    不要尝试用file://协议加载扩展内的资源,扩展资源有专属的chrome-extension://协议,通过chrome.runtime.getURL()生成的URL会自动适配该协议,避免跨域或协议不兼容问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 11:01:16