请求:mode 属性

基线 广泛可用

此功能已得到良好确立,并且可在许多设备和浏览器版本中使用。它自以下时间起在各个浏览器中可用 2017 年 3 月.

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

一个RequestMode 值。

关联的mode,其可用值为

same-origin

如果以这种模式对另一个来源发出请求,则结果为错误。您可以使用此方法确保始终对您的来源发出请求。

no-cors

阻止方法成为除HEADGETPOST 之外的任何内容,并阻止标头成为除CORS 安全列表请求标头之外的任何内容。如果任何 ServiceWorker 拦截这些请求,它们可能不会添加或覆盖任何标头,除非这些标头是CORS 安全列表请求标头。此外,JavaScript 无法访问生成的 Response 的任何属性。这确保了 ServiceWorker 不影响 Web 的语义,并防止由于跨域泄露数据而导致的安全和隐私问题。

cors

允许跨源请求,例如访问第三方供应商提供的各种 API。预计这些请求将遵守CORS 协议。在 Response 中仅公开有限的标头集,但主体是可读的。

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

websocket

仅在建立 WebSocket 连接时使用的特殊模式。

默认模式

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

例如,当使用 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②

浏览器兼容性

BCD 表仅在启用 JavaScript 的浏览器中加载。

另请参阅