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

Chrome扩展Manifest V3中declarativeNetRequest如何保留查询参数

Chrome 扩展 Manifest V3 declarativeNetRequest 重定向保留查询参数解决方案

问题原因

你当前配置的是固定目标URL的重定向规则,这类规则会直接用配置的地址完整替换原请求URL,不会自动保留原请求携带的查询参数,因此带参数的请求会被跳转到无参数的目标地址。

可行实现方案

最简便的方式是使用正则匹配替换规则,无需额外编写运行时代码,静态规则即可直接实现需求,修改后的规则参考如下:

[
  {
    "id": 1,
    "action": {
      "type": "redirect",
      "redirect": {
        "regexSubstitution": "https://another.com/api_2/luckyDog\\1"
      }
    },
    "condition": {
      "requestMethods": ["get"],
      "regexFilter": "^https?://current\\.com/api/luckyDog(\\?.*)?$",
      "resourceTypes": ["xmlhttprequest", "fetch"]
    }
  }
]

规则说明

  • 替换原有的urlFilter为regexFilter,通过正则匹配原请求地址,将查询参数部分(?开头的所有内容,包含无查询参数的空场景)捕获为第1个分组
  • regexSubstitution中通过\\1引用捕获到的查询参数分组,自动拼接到目标地址末尾:无查询参数时分组内容为空,重定向结果和你原有逻辑一致;带查询参数时会自动携带原参数,完全符合预期
  • 新增resourceTypes字段限定匹配的请求类型(可根据你的实际业务场景调整取值,比如需要匹配页面导航就加main_frame),避免规则误匹配其他类型资源请求

配套权限配置

确保manifest.json中已声明对应权限,否则规则不会生效:

{
  "permissions": ["declarativeNetRequest"],
  "host_permissions": ["*://current.com/*", "*://another.com/*"]
}

注意:修改规则后需要重新加载扩展,可访问chrome://extensions/确认扩展权限已正常授予,规则加载无报错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 16:48:44