火狐本地调试时file://协议触发同源策略封锁,需修改about:config中privacy.file_unique_origin和security.fileuri.strict_origin_policy为false,或安装cors everywhere插件,或改用live server等http服务器启动。

火狐浏览器本地调试时双击打开HTML文件,页面用fetch加载同目录JSON或XSL资源,控制台直接报“已拦截跨源请求:同源策略禁止读取位于 file:/// 的远程资源”,导致数据无法加载、样式无法应用、调试流程中断。
确认是否为file://协议引发的封锁
先看地址栏:如果显示的是 file:///D:/project/index.html 或类似路径,而非 http://localhost:5173,那问题根源就是火狐对本地文件协议的默认封锁——它把每个 file:// 路径都视为独立源,哪怕 JSON 和 HTML 在同一文件夹也不允许互通。
这一步不能跳过:只要地址栏不是 http/https 开头,后面所有 CORS 配置、插件、代码修改全无效。
修改about:config禁用file协议唯一源限制
第一步:在火狐地址栏输入 about:config → 回车 → 点击“接受风险并继续”;
第二步:在搜索框中输入 privacy.file_unique_origin → 找到该项后双击,将值由 【true】 改为 【false】;
第三步:再搜索 security.fileuri.strict_origin_policy → 同样双击改为 【false】;
第四步:关闭所有火狐窗口(包括后台进程),重新启动浏览器——仅刷新页面或新建标签页不会生效。
临时启用CORS Everywhere插件(仅限开发调试)
方法一:快速启用通配模式
1) 地址栏输入 about:addons → 点击右上角“寻找更多附加组件” → 搜索 CORS Everywhere → 点击第一个结果旁的“添加到 Firefox”;
2) 安装完成后,点击插件右侧齿轮图标 → “选项” → 勾选 【Enabled at startup】;
3) 在 Force value of "access-control-allow-origin" 输入框填入 * → 点击 Save;
4) 关闭全部窗口,重启火狐。
方法二:精确匹配当前开发源(更安全)
若你用 Vite 启动服务,地址是 http://localhost:5173,就在 Force value 输入框填入该完整地址,避免 * 值与 credentials: true 冲突。
改用本地HTTP服务器启动(推荐长期方案)
这一步操作起来很简单,直接把文件拖进去就行:用 VS Code 安装 Live Server 插件,右键 index.html → “Open with Live Server”;
或者终端执行:npx serve -s(需全局安装 serve)、python3 -m http.server 8000、或 vite;
浏览器打开 http://localhost:8000 或对应端口,所有 fetch、XMLHttpRequest、XSLTProcessor 加载本地资源均不再触发 CORS 报错——因为 file:// 协议彻底被绕开,同源策略自然失效。











