一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

如何解决谷歌浏览器更新后原来支持的跨域CORS插件全部失效的问题

时间:2026-06-06 11:00:59 编辑:袖梨 来源:一聚教程网

Chrome 94+停用Manifest V2导致CORS插件失效,需两步解决:一、在chrome://flags中启用Manifest V2支持并禁用相关弃用警告;二、关闭Block insecure private network requests策略或命令行启动绕过,方可恢复本地服务访问与插件功能。

谷歌浏览器更新到94及以上版本后,原本正常工作的Allow CORS、CORS Unblocked等插件图标变灰、点击无响应、控制台仍报“blocked by CORS policy”,这是因为Chrome已彻底停用Manifest V2扩展机制,所有依赖webRequest.blocking或动态注入响应头的旧版插件均无法加载。

启用Manifest V2兼容支持(临时恢复插件)

Chrome 140默认禁用Manifest V2,但可通过flags开关强制启用,无需修改注册表或重装浏览器。

第一步:在地址栏输入chrome://flags/并回车。

第二步:在搜索框中输入manifest versions,找到「Extension manifest versions」选项,点击下拉菜单选择Enabled

第三步:再次搜索manifest-v2,将以下三项全部设为Disabled
• Extension manifest v2 deprecation warning
• Extension manifest v2 deprecation notification
• Extension manifest v2 deprecation enforcement

第四步:点击右下角Relaunch按钮重启浏览器。重启后进入chrome://extensions/,勾选「开发者模式」,再手动启用原CORS插件。

【必须关闭同步功能,否则重启后权限会被云端策略覆盖】

关闭私有网络拦截策略(解决localhost/192.168.x.x访问失败)

该问题常见于调用本地服务(如海康视频插件、本地API调试),错误提示含“more-private address space `local`”字样的,需关闭Chrome对私有网络请求的主动拦截。

方法一:通过flags页面直接关闭(Chrome 94–107适用)
在地址栏输入chrome://flags/#block-insecure-private-network-requests → 将其设为Disabled → 点击Relaunch

方法二:命令行启动绕过(Chrome 108+必须)
先彻底退出所有Chrome进程(任务管理器中确认无chrome.exe残留),再按系统执行:
Windows:chrome.exe --disable-features=BlockInsecurePrivateNetworkRequests --user-data-dir="C:ChromeDevSession"
macOS:open -n -a "Google Chrome" --args --disable-features=BlockInsecurePrivateNetworkRequests --user-data-dir="/tmp/chrome_dev_test"

这一步生效后,地址栏下方会显示“您使用的是不受支持的命令行标记”,即表示策略已绕过。

替代方案:改用声明式规则型新插件

Manifest V3插件无法动态注入CORS头,但部分新插件采用预设域名白名单+静态响应头注入方式,在有限场景下仍可工作。

访问Chrome网上应用店,搜索安装CORS ToggleMo' Better CORS,安装后点击插件图标,将目标域名(如http://localhost:3000)添加进白名单列表。

注意:该方案仅对HTTP协议且未触发预检(preflight)的简单GET/POST请求有效;若请求含自定义Header或Content-Type为application/json,则仍会因缺少Access-Control-Allow-Headers而失败。

刷新页面,打开开发者工具→Network标签页,点击任一被拦截请求,查看Response Headers中是否出现access-control-allow-origin: *字段。

热门栏目