火狐浏览器本地HTML页面读取同目录JSON/CSV文件失败的三大原因及解决方案:一是修改about:config中security.fileuri.strict_origin_policy为false并彻底重启浏览器;二是对HTTP/HTTPS站点通过地址栏锁图标或Ctrl+I授予剪贴板/文件权限;三是验证JSON文件无BOM头、中文引号、尾随逗号等语法错误。
火狐浏览器双击打开本地HTML页面后,页面通过JavaScript尝试读取同目录下的config.json或data.csv等本地文件时,控制台报错“由于安全限制无法读取文件”,页面功能直接中断,数据加载失败。
这是最根本、最稳定的解决方案,适用于所有本地开发场景,包括Godot导出的HTML项目、Three.js加载本地模型、Vue/React静态调试等。
第一步:在火狐地址栏输入about:config,回车后点击【接受风险并继续】。
第二步:在搜索框中输入security.fileuri.strict_origin_policy。
第三步:找到该项后双击,将值由true改为false。【这一步不可跳过,否则fetch(file:///)仍会被拦截】
第四步:关闭所有火狐窗口——包括后台隐藏进程(可在任务管理器中确认firefox.exe已完全退出),然后重新启动浏览器。
如果你访问的是本地服务器地址(如http://localhost:5173)或已部署的HTTPS网站,且报错提示涉及navigator.clipboard.read()或input[type="file"]受限,说明是沙盒权限策略触发。
方法一:点击地址栏左侧锁形图标→选择“权限”→将“剪贴板”或“文件”设为“允许”→刷新页面。
方法二:按Ctrl+I(Windows/Linux)或Cmd+I(macOS)快捷键直接呼出当前页权限面板,勾选对应权限项即可。
即使配置已改,若JSON文件含BOM头、中文引号、尾随逗号或不可见控制字符,fetch仍会静默失败并抛出“无法读取文件”类错误。
用VS Code打开该JSON文件,右下角状态栏确认编码显示为UTF-8(非UTF-8 with BOM);
检查所有键名和字符串值是否使用英文双引号包裹,例如"name": "test",而非“name”: “test”;
删除末尾多余逗号,如{"a": 1,}必须改为{"a": 1};
将文件内容粘贴至JSONLint在线验证,确保无语法错误——这一步耗时不到10秒,却能避开80%的假性“安全限制”报错。