代理
使用代理 API 代理 Web 请求。您可以使用proxy.onRequest
事件侦听器拦截 Web 请求,并返回一个对象,该对象描述是否以及如何代理它们。
proxy.onRequest
方法的优点是,实现代理策略的代码在扩展的后台脚本中运行,因此它可以完全访问扩展可用的 WebExtension API(包括例如,访问扩展的storage
和dns
等网络 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 的请求可能很快就会到来。此类型的连接不提供有效的选项卡信息,因此诸如 tabId
、frameId
、parentFrameId
等请求详细信息不准确。这些连接的webRequest.ResourceType
为 speculative
。
类型
proxy.ProxyInfo
-
描述代理。
proxy.RequestDetails
-
包含浏览器即将发出的 Web 请求的信息。
属性
proxy.settings
-
获取和设置代理设置。
事件
proxy.onError
-
当系统在运行 PAC 脚本或
onRequest
侦听器时遇到错误时触发。 proxy.onRequest
-
当 Web 请求即将发出时触发,从而使扩展有机会对其进行代理。
示例扩展
浏览器兼容性
BCD 表仅在浏览器中加载