webRequest.BlockingResponse

extraInfoSpec 参数中设置了 "blocking" 参数的事件监听器将返回该类型的对象。

通过设置 BlockingResponse 中的特定属性,监听器可以修改网络请求。

需要注意的是,并不是在每个监听器中都可以设置该对象的所有属性:可以设置的属性取决于触发该监听器的事件,具体如下所述。

类型

该类型的取值是一个对象。其包含以下属性:

authCredentials 可选

object。若设置,则请求将使用给定的凭据进行。你只能在 onAuthRequired 中设置该属性。authCredentials 属性是包含下列属性的对象:

username

string。要提供的用户名。

password

string。要提供的密码。

cancel 可选

boolean。若为 true,则请求被取消。你只能在 onBeforeRequestonBeforeSendHeadersonHeadersReceivedonAuthRequired 中设置该属性。

redirectUrl 可选

string。如果设置,则原始请求将被重定向到该 URL。你只能在 onBeforeRequestonHeadersReceived 中设置该属性。

你可以重定向到非 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