米侠浏览器中file://协议下跨域脚本被系统拦截,需先确认协议类型,再启用脚本注入并授权文件网址访问,或改用HTTP本地服务器(如Spartan IDE或Termux)绕过限制,并更新脚本@match规则适配新URL。

米侠浏览器中跨域脚本被系统权限拦截,表现为页面控制台报错“Blocked by CORS policy”、Fetch请求静默失败、第三方API调用无响应或数据为空,根本原因是Chromium内核在安卓平台对file://协议加载的本地HTML中发起的跨域请求做了双重限制——既拦截跨源网络请求,又拒绝授予本地文件上下文中的XMLHttpRequest和fetch的credentials权限。
确认当前运行环境是否为file://协议
这一步必须最先验证,因为只有在file://协议下才会触发安卓系统级跨域拦截;若网页托管在http://localhost或真实域名下,则问题属于服务端CORS配置范畴,与本方案无关。
在米侠浏览器中打开目标页面 → 点击地址栏左侧锁形图标 → 查看协议类型。若显示 【file:///storage/emulated/0/xxx/index.html】,则确认为本地文件环境,继续执行后续步骤;若显示http或https开头,立即停止本流程。
启用脚本注入并授予文件网址访问权
跨域脚本在file://环境下默认被完全禁用,必须显式开启底层注入通道并授权访问本地路径。
① 点击右上角三个点图标 → 进入【设置】→【高级设置】→ 找到【脚本注入】选项并开启开关。
② 返回上一级 → 点击【扩展管理】→ 找到已安装的脚本管理器(如暴力猴)→ 右键选择“管理扩展”。
③ 在扩展详情页中,开启两项关键权限:【在所有网站上运行】 和 【允许访问文件网址】 —— 缺一不可,否则脚本连初始化都失败。
④ 关闭浏览器后台进程(从最近任务中彻底划掉),重新启动后进入脚本管理器界面,确认“启用脚本”已勾选。
改用HTTP本地服务器绕过file://限制
这是唯一稳定、无需Root、兼容Android 10+ Scoped Storage机制的解法。本质是让HTML文件通过http协议加载,使浏览器视其为普通网页而非受限本地资源,从而解除跨域脚本的系统级拦截。
方法一:用Spartan IDE快速起服务
1、在应用商店安装Spartan IDE(轻量无广告,2026年主流推荐)。
2、打开App → 点击右下角「+」→ 选择含HTML文件及JS脚本的文件夹(如Download或WebProjects)。
3、点击顶部「▶」启动服务器,记下提示地址,例如 http://localhost:8080。
4、在米侠浏览器地址栏输入该地址 → 进入文件列表 → 点击你的index.html → 此时页面中所有fetch、XMLHttpRequest、WebSocket等跨域脚本均可正常执行。
方法二:用Termux执行Python简易服务器(进阶用户)
1、安装Termux → 执行 pkg install python。
2、cd /sdcard/Download/my-web-app → 运行 python3 -m http.server 8000。
3、浏览器访问 http://localhost:8000 → 点击HTML文件即可加载,所有跨域逻辑自动生效。
修复脚本头部匹配规则与执行时机
即使服务器已起,脚本仍不运行,大概率是@match规则未覆盖新URL格式。
在脚本管理器中编辑目标脚本 → 检查顶部注释区是否有 @match file://* —— 必须删除这一行,否则脚本只在file://下尝试匹配,而HTTP服务器下完全不触发。
替换为 @match http://localhost:*/* 或更通用的 @match *://*/*,保存后刷新页面。
关闭所有已打开的目标网页标签页 → 新建标签页 → 手动输入 http://localhost:8080/index.html → 等待页面完全加载完毕后再检查控制台是否有跨域请求日志。


















