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

使用fetch获取JSON文件时出现GET 404(Not Found)错误求助

解决Fetch加载本地JSON文件时触发错误的问题

看起来你在通过Fetch获取本地JSON文件时遇到了报错,我帮你梳理几个常见的问题点和修复方案:

1. 多余的请求头导致的异常

当你请求静态JSON文件时,GET请求并不需要设置Content-Type请求头——这个头是用来标识请求体的类型,而GET请求没有请求体,额外添加反而可能让开发服务器或浏览器解析出问题。建议直接移除这个请求头,甚至可以简化整个headers配置:

// 简化后的fetch调用,去掉不必要的headers
fetch('./JSONDATA.json')

2. 文件路径是否正确

先确认JSONDATA.json的位置是否和当前执行代码的文件在同一目录下。如果文件在子目录(比如data文件夹),路径要写成./data/JSONDATA.json;如果在上一级目录则是../JSONDATA.json。

可以打开浏览器开发者工具的「Network」面板,查看这个请求的状态:如果是404,那100%是路径写错了。

3. 动态属性访问的错误

你代码里的console.log(data.term);这里有个小问题:term是一个变量,要访问对象的动态属性,得用方括号语法,而不是点语法。点语法只能识别字面量属性名,比如data.apple,但变量的话要写成data[term],否则你其实是在找data里名为term的固定属性,大概率这个属性不存在。

4. 完善错误排查信息

你当前的catch块只输出了模糊的错误信息,建议改成输出完整的错误对象,这样能看到更详细的报错原因:

.catch((error) => { 
  console.error('加载JSON文件出错:', error); 
});

修复后的完整代码

const onSearchSubmit = (term) => { 
  console.log(term); 
  fetch('./JSONDATA.json')
  .then(function (response) { 
    // 先检查请求是否成功(状态码200-299)
    if (!response.ok) {
      throw new Error(`请求失败!状态码: ${response.status}`);
    }
    return response.json(); 
  }) 
  .then(function (data) { 
    setFruits(data); 
    // 用方括号访问动态属性
    console.log(data[term]); 
  }) 
  .catch((error) => { 
    console.error('加载JSON文件出错:', error); 
  }); 
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 15:32:48