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

Chrome API修改User-Agent不生效?技术问题求助

Chrome扩展修改User-Agent不生效的问题解决

你的代码无法生效主要有两个核心问题:

1. 监听函数缺少blocking权限

chrome.webRequest.onBeforeSendHeaders要修改请求头,必须在第三个参数中添加"blocking"——这个权限允许扩展暂停请求流程,修改请求头后再放行。仅传入["requestHeaders"]只能读取请求头,无法让修改生效。

2. Manifest未配置必要权限

需要在manifest.json中声明webRequest、webRequestBlocking以及目标URL权限,否则扩展没有拦截和修改请求的权限。

修正后的代码

chrome.webRequest.onBeforeSendHeaders.addListener((details) => {
    let reqHeaders = details.requestHeaders;
    if (reqHeaders) {
        // 忽略大小写匹配User-Agent,避免因浏览器内部大小写差异导致匹配失败
        reqHeaders.forEach((header) => {
            if (header.name.toLowerCase() === "user-agent") {
                header.value = "Mozilla/5.0 (X11; CrOS x86_64 8172.45.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.64 Safari/537.36";
            }
        });
    }
    return {requestHeaders: reqHeaders};
}, {urls: ["<all_urls>"]}, ["blocking", "requestHeaders"]); // 新增blocking权限

对应的Manifest配置示例

如果使用Manifest V3:

{
  "manifest_version": 3,
  "name": "User-Agent 修改工具",
  "version": "1.0",
  "permissions": [
    "webRequest",
    "webRequestBlocking",
    "<all_urls>"
  ],
  "background": {
    "service_worker": "background.js"
  }
}

如果使用Manifest V2:

{
  "manifest_version": 2,
  "name": "User-Agent 修改工具",
  "version": "1.0",
  "permissions": [
    "webRequest",
    "webRequestBlocking",
    "<all_urls>"
  ],
  "background": {
    "scripts": ["background.js"]
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 11:15:27