Request: mode 属性

Baseline 广泛可用 *

此特性已得到良好确立,可跨多种设备和浏览器版本使用。自 2017 年 3 月起,所有浏览器均支持此特性。

* 此特性的某些部分可能存在不同级别的支持。

注意:此功能在 Web Workers 中可用。

modeRequest 接口的一个只读属性,包含请求的模式(例如 corsno-corssame-originnavigate)。这用于确定跨域请求是否会产生有效响应,以及响应的哪些属性是可读的。

要构建具有特定模式的请求,请在 Request.Request() 构造函数中将所需值作为 RequestInit.mode 选项传递。

请注意,设置特定的模式,尤其是 no-cors,会对可用的请求方法和标头施加限制,并阻止 JavaScript 访问响应标头或正文。有关更多详细信息,请参阅 RequestInit.mode 的文档。

以下值之一

same-origin

禁止跨域请求。如果使用此模式向另一个域发出请求,则会导致错误。

no-cors

禁用跨域请求的 CORS。响应是不透明的,这意味着其标头和正文对 JavaScript 不可用。

cors

如果请求是跨域的,它将使用 跨域资源共享 (CORS) 机制。

用于支持导航的模式。navigate 值仅用于 HTML 导航。仅在文档之间导航时才创建导航请求。

默认模式

请求可以通过多种方式发起,请求的模式取决于其发起方式。

例如,当使用 Request() 构造函数创建 Request 对象时,该 Requestmode 属性值设置为 cors

然而,对于除 Request() 构造函数以外的其他方式创建的请求,通常使用 no-cors 作为模式;例如,对于从标记发起的嵌入式资源请求,除非存在 crossorigin 属性,否则在大多数情况下,请求将使用 no-cors 模式发出——即,对于 <link><script> 元素(模块除外),或者 <img><audio><video><object><embed><iframe> 元素。

示例

在下面的代码片段中,我们使用 Request() 构造函数创建一个新请求(用于与脚本在同一目录下的图像文件),然后将请求模式保存在一个变量中。

js
const myRequest = new Request("flowers.jpg");
const myMode = myRequest.mode; // returns "cors" by default

规范

规范
Fetch
# ref-for-dom-request-mode②

浏览器兼容性

另见