使用Chrome扩展修改HTTP请求的响应主体

Modify the response body of HTTP requests with Chrome extension

本文关键字:响应 主体 请求 HTTP Chrome 扩展 修改 使用      更新时间:2023-09-26

我正在开发Chrome扩展。我想在(第一次)加载页面时修改一些内容。我想知道如果我在chrome.devtools.network.onRequestFinished.addListener中使用方法getContent(),那么从该方法返回内容后如何修改?

这种方法是否仅用于网络/流量观测?我可以修改响应正文吗?

这是不可能的。

在Chromium项目中看到这个bug(从2011年11月开始):

  • https://bugs.chromium.org/p/chromium/issues/detail?id=104058

关于如何在某些用例中绕过这个限制,有几个相关的讨论:

  • 使用内容脚本将代码插入页面上下文
  • https://groups.google.com/a/chromium.org/forum/#!消息/apps dev/v176iCmRgSs/iM-72Evf8JgJ

根据Chromium bug DB中的一些讨论,我猜出于安全原因,可能永远不允许修改现有请求的内容,但可能会允许读取响应和重定向(总有一天,当所有阻塞问题都得到解决时)。

是的,您只需要使用webRequest API,您就可以完全控制所有请求,并可以在之前和之后进行修改,以下是完整的文档:

Chrome扩展WebRequest API

(需要注意的是,用户在安装应用程序时必须授予权限)

希望这能有所帮助,如果你正在寻找更具体的信息,请回复我,我可以提供帮助,但文档非常善于告诉你如何设置正确的事件处理:)