本地加载data.json出现net::ERR_FAILED报错,寻求排查方案
解决本地file://协议下fetch加载data.json报错ERR_FAILED的问题
核心原因是浏览器的同源策略限制:直接通过本地文件路径(file://协议)打开HTML时,浏览器会阻止脚本加载本地文件,避免安全风险,所以fetch/getData()都会失败。
以下是具体解决办法:
启动本地开发服务器(推荐方案)
- Python环境:打开终端,切换到你的文件所在文件夹,运行对应命令:
- Python 3:
python -m http.server 8000 - Python 2:
python -m SimpleHTTPServer 8000
运行后在浏览器访问http://localhost:8000/icd1ocm-codes-2024.html,此时用fetch('data.json')就能正常加载文件。
- Python 3:
- Node.js环境:先全局安装http-server工具,终端运行
npm install -g http-server,然后切换到文件目录运行http-server,根据终端提示的地址访问HTML文件即可。
- Python环境:打开终端,切换到你的文件所在文件夹,运行对应命令:
校验文件路径是否正确
- 确保data.json和你的HTML、JS文件在同一目录下,fetch调用时用相对路径
fetch('data.json'),不要使用绝对本地路径(比如C:/xxx/data.json)。 - 可以在HTML中添加一个测试链接:
<a href="data.json">点击测试打开data.json</a>,如果点击后能正常显示JSON内容,说明路径没问题;如果404,就是文件位置不对。
- 确保data.json和你的HTML、JS文件在同一目录下,fetch调用时用相对路径
临时修改浏览器设置(仅用于临时测试,不推荐长期使用)
- 对于Chrome浏览器,右键快捷方式→属性→在“目标”栏末尾添加
--allow-file-access-from-files(注意前面有空格),重启浏览器后打开HTML文件,此时脚本可以加载本地JSON。测试完成后记得改回设置,避免安全隐患。
- 对于Chrome浏览器,右键快捷方式→属性→在“目标”栏末尾添加
内容的提问来源于stack exchange,提问作者Heather Black
相关产品推荐
相关产品推荐

