webRequest.BlockingResponse
在 extraInfoSpec
参数中设置了 "blocking"
参数的事件监听器将返回该类型的对象。
通过设置 BlockingResponse
中的特定属性,监听器可以修改网络请求。
需要注意的是,并不是在每个监听器中都可以设置该对象的所有属性:可以设置的属性取决于触发该监听器的事件,具体如下所述。
类型
该类型的取值是一个对象。其包含以下属性:
authCredentials
可选-
object
。若设置,则请求将使用给定的凭据进行。你只能在onAuthRequired
中设置该属性。authCredentials
属性是包含下列属性的对象: cancel
可选-
boolean
。若为true
,则请求被取消。你只能在onBeforeRequest
、onBeforeSendHeaders
、onHeadersReceived
和onAuthRequired
中设置该属性。 redirectUrl
可选-
string
。如果设置,则原始请求将被重定向到该 URL。你只能在onBeforeRequest
或onHeadersReceived
中设置该属性。你可以重定向到非 HTTP 方案(例如
data:
)。重定向将使用与原始请求相同的请求方法,除非是从onHeadersReceived
阶段发起的,此时重定向将使用 GET 方法。如果扩展想要将公共(例如 HTTPS)URL 重定向到扩展页面,则扩展的 manifest.json 文件必须包含列出了扩展页面的 URL 的 web_accessible_resources 键。
requestHeaders
可选-
webRequest.HttpHeaders
。这是一个HttpHeaders
对象(一个数组,其中各对象都表示一个标头)。如果设置,则请求将使用这些标头而不是原始标头。你只能在onBeforeSendHeaders
中设置该属性。 responseHeaders
可选-
webRequest.HttpHeaders
。这是一个HttpHeaders
对象(一个数组,其中各对象都表示一个标头)。如果设置,则将认为服务器以这些响应标头而非原始标头响应了请求。你只能在onHeadersReceived
中设置该属性。如果多个扩展尝试设置同一标头(例如Content-Security-Policy
),则只有其中一次更改会成功。 upgradeToSecure
可选-
boolean
。若设为true
并且原始请求是一个 HTTP 请求,则这会阻止原始请求的发送,而是发起一个安全的(HTTPS)请求。如果任何扩展在onBeforeRequest
中返回redirectUrl
,则upgradeToSecure
将被忽略。你只能在onBeforeRequest
中设置该属性。
浏览器兼容性
备注:
此 API 基于 Chromium 的 chrome.webRequest
API。该文档衍生自 Chromium 代码中的 web_request.json
。