火狐浏览器本地打开html文件时fetch读取同目录json/csv失败是因file://协议安全限制;需在about:config中将security.fileuri.strict_origin_policy设为false并彻底重启浏览器,再验证文件编码、引号、逗号等合法性。

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










