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

Chrome扩展如何触发499错误或终止网站请求?

终止Chrome扩展中的网站请求/模拟499错误的实现方法

一、核心依赖:Chrome WebRequest API

Chrome扩展的chrome.webRequest API是拦截、修改或终止网络请求的核心工具,需在manifest中声明对应权限才能启用。

二、终止网站请求的实现

1. 配置Manifest权限

  • Manifest V3 示例:
{
  "manifest_version": 3,
  "name": "请求拦截工具",
  "version": "1.0",
  "permissions": ["webRequest", "webRequestBlocking", "scripting"],
  "host_permissions": ["<all_urls>"], // 可替换为特定域名,如"*://*.example.com/*"
  "background": {
    "service_worker": "background.js"
  }
}
  • Manifest V2 示例:
{
  "manifest_version": 2,
  "name": "请求拦截工具",
  "version": "1.0",
  "permissions": ["webRequest", "webRequestBlocking", "<all_urls>"],
  "background": {
    "scripts": ["background.js"]
  }
}

2. 后台脚本拦截并终止请求

在background.js中监听onBeforeRequest事件,返回{cancel: true}即可直接终止请求:

// 拦截指定URL的主文档请求并终止
chrome.webRequest.onBeforeRequest.addListener(
  () => {
    return { cancel: true };
  },
  {
    urls: ["*://*.example.com/*"], // 自定义拦截的URL规则
    types: ["main_frame"] // 可选,限定拦截资源类型(如文档、脚本、图片等)
  },
  ["blocking"]
);

该操作会触发浏览器返回net::ERR_BLOCKED_BY_CLIENT错误,等同于客户端主动断开连接,若后端使用Nginx服务器,会自动记录为499状态码。

三、模拟499错误页面提示

若需要在页面上显示499相关的错误提示,可在请求终止后注入脚本替换页面内容:

Manifest V3 示例

// 监听请求错误事件
chrome.webRequest.onErrorOccurred.addListener(
  (details) => {
    // 判断是否为扩展拦截导致的错误
    if (details.error === "net::ERR_BLOCKED_BY_CLIENT" && details.type === "main_frame") {
      // 注入脚本替换页面内容
      chrome.scripting.executeScript({
        target: { tabId: details.tabId },
        func: () => {
          document.documentElement.innerHTML = `
            <div style="text-align: center; margin-top: 50px;">
              <h1>499 Client Closed Request</h1>
              <p>请求已被客户端终止</p>
            </div>
          `;
        }
      });
    }
  },
  { urls: ["<all_urls>"] }
);

注意事项

  • 权限配置必须完整,否则webRequest API无法生效;
  • URL规则需精准设置,避免误拦截无关请求;
  • Manifest V3中后台脚本(service_worker)无法直接操作DOM,必须通过chrome.scripting API注入内容脚本;
  • 499是Nginx特有非标准状态码,Chrome浏览器本身不会向页面返回该码,仅能通过拦截请求模拟客户端断开场景,让服务器端记录499。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 21:55:18