代理

使用代理 API 代理 Web 请求。您可以使用proxy.onRequest事件侦听器拦截 Web 请求,并返回一个对象,该对象描述是否以及如何代理它们。

proxy.onRequest方法的优点是,实现代理策略的代码在扩展的后台脚本中运行,因此它可以完全访问扩展可用的 WebExtension API(包括例如,访问扩展的storagedns等网络 API)。

除了此 API 外,扩展还可以使用browserSettings.proxyConfig属性配置全局代理设置。

注意:Chrome、Edge 和 Opera 具有一个也称为“代理”的扩展 API,其功能与此 API 类似,因为扩展可以使用它来实现代理策略。但是,Chrome API 的设计与此 API 完全不同。由于此 API 与 Chrome proxy API 不兼容,因此此 API 只能通过 browser 命名空间使用。

要使用此 API,您需要具有“代理”权限。此外,在您想要拦截请求的地方,您还需要被拦截请求的 URL 的主机权限

“代理”权限需要将 "strict_min_version" 设置为“91.1.0”或更高版本。要使用此权限,请在manifest.json中添加或更新"browser_specific_settings"键以指定 Firefox 的最低版本。有关更多信息,请参阅保护 Firefox 附加组件的代理 API

注意:浏览器可以建立推测性连接,它可以确定对 URI 的请求可能很快就会到来。此类型的连接不提供有效的选项卡信息,因此诸如 tabIdframeIdparentFrameId 等请求详细信息不准确。这些连接的webRequest.ResourceTypespeculative

类型

proxy.ProxyInfo

描述代理。

proxy.RequestDetails

包含浏览器即将发出的 Web 请求的信息。

属性

proxy.settings

获取和设置代理设置。

事件

proxy.onError

当系统在运行 PAC 脚本或 onRequest 侦听器时遇到错误时触发。

proxy.onRequest

当 Web 请求即将发出时触发,从而使扩展有机会对其进行代理。

示例扩展

浏览器兼容性

BCD 表仅在浏览器中加载