火狐浏览器双击打开本地HTML文件时fetch同目录资源被拦截,根本原因是file://协议无源概念,浏览器内核级封锁请求;临时解法为修改about:config中security.fileuri.strict_origin_policy和privacy.file_unique_origin为false并彻底重启,或安装CORS Everywhere插件强制注入Access-Control-Allow-Origin:*头,长期推荐用Live Server等HTTP服务器替代file://协议。

火狐浏览器双击打开本地HTML文件(地址栏显示file:///D:/xxx/index.html)时,页面中用fetch或XMLHttpRequest加载同目录下的JSON、JS、CSS等资源,控制台报“已拦截跨源请求:同源策略禁止读取位于 file:/// 的远程资源”,页面数据空白、模块加载失败、调试中断。
根本原因:file://协议没有源(origin)概念
浏览器判断是否同源,依赖协议+域名+端口三要素。file://协议既无域名也无端口,规范中将其视为“不透明源”,火狐直接标记为null。一旦页面源是null,所有fetch、import、Worker等API在发起请求前就被内核级拦截——请求根本没发出,Network面板里连记录都没有,后端日志更不会出现调用痕迹。
这不是CORS配置问题,也不是代码写错了,而是协议层的硬性封锁。
临时绕过方案一:修改about:config禁用file协议隔离
第一步:地址栏输入about:config → 点击【接受风险并继续】
第二步:搜索security.fileuri.strict_origin_policy → 双击将其值由true改为false
第三步:搜索privacy.file_unique_origin → 若存在且为true,同样双击改为false
第四步:关闭所有火狐窗口(包括后台进程)→ 地址栏输入about:restartrequired → 点击“重启 Firefox” 【仅刷新标签页或新建窗口无效,必须彻底重启进程】
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
临时绕过方案二:安装CORS Everywhere插件(适用于localhost跨端口场景)
方法一:安装插件
地址栏输入about:addons → 点击右上角齿轮图标 → “在附加组件管理器中浏览” → 搜索“CORS Everywhere” → 找到作者为spenibus的版本(AMO ID:cors-everywhere@spenibus)→ 点击“添加到 Firefox”
方法二:启用并强制注入响应头
安装完成后,点击插件右侧“选项”按钮 → 勾选“Enabled at startup” → 在“Force value of 'access-control-allow-origin'”中填入* → 点击“Save”
【必须关闭所有火狐窗口后重新启动,否则配置不生效】
推荐长期解法:用HTTP服务器代替file://协议
① VS Code用户:安装Live Server插件 → 右键HTML文件 → “Open with Live Server” → 自动在http://127.0.0.1:5500启动
② 命令行用户(无需安装):
Python 3:执行python3 -m http.server 8000
Node.js:执行npx http-server -p 8000
macOS内置:执行python -m SimpleHTTPServer 8000(仅Py2)
这一步做完,地址栏变成http://开头,浏览器按标准CORS流程处理请求,所有现代前端调试手段全部可用。
前端入门到VUE实战笔记:立即使用
在学习笔记中,你将探索 前端 的入门与实战技巧!










