You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chrome扩展Manifest v3重定向本地文件报错问题求助

解决Chrome Manifest v3中重定向至扩展本地文件的ERR_UNSAFE_REDIRECT问题

问题分析

你遇到的net::ERR_UNSAFE_REDIRECT错误,本质是Chrome安全限制导致:当从外部域名(如你的cloudfront域名)重定向到扩展内部资源(chrome-extension://协议)时,必须明确授权外部域名可访问该扩展资源,同时配置正确的权限。

解决方案

1. 配置web_accessible_resources(核心步骤)

在manifest.json中添加该字段,将你要重定向的本地脚本声明为可被目标外部域名访问:

"web_accessible_resources": [
  {
    "resources": ["/scripts/*.js"],
    "matches": ["https://d35aaqx5ub95lt.cloudfront.net/*"]
  }
]
  • resources:指定允许访问的扩展内部文件路径,用通配符*匹配所有js文件
  • matches:限定可访问这些资源的外部域名,必须和你要拦截的请求域名完全匹配

2. 确保权限配置正确

在manifest.json的permissions字段中,添加必要的权限:

"permissions": [
  "declarativeNetRequest",
  "https://d35aaqx5ub95lt.cloudfront.net/*"
]
  • declarativeNetRequest:启用声明式网络请求功能
  • 目标域名权限:确保扩展有权拦截该域名下的请求

3. 验证规则路径与格式

你的动态规则写法本身是正确的,但需确认:

  • extensionPath中的路径是相对于扩展根目录的绝对路径,比如/scripts/app-8d620ab3.js确实存在于扩展包的scripts文件夹下
  • 如果使用静态规则集(rules.json),需在manifest.json中正确声明:
"declarative_net_request": {
  "rule_resources": [
    {
      "id": "my_rules",
      "enabled": true,
      "path": "rules.json"
    }
  ]
}

关键说明

重定向到外部URL正常是因为Chrome允许跨域重定向到普通HTTP/HTTPS资源,但扩展内部资源属于受保护的chrome-extension://协议,必须通过web_accessible_resources明确授权外部域名访问,否则会触发安全拦截。

内容的提问来源于stack exchange,提问作者Nowam

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 18:20:06