Request.mode - Web API 接口参考 编辑

Request 接口的 mode 只读属性包含请求的模式(例如:cors 、 no-cors 、 cors-with-forced-preflight 、 same-origin 或 navigate 。)这用于确定跨域请求是否能得到有效的响应,以及响应的哪些属性是可读的。

    语法

    var myMode = request.mode;

    属性值

    一个 RequestMode 值。

    • same-origin — 如果使用此模式向另外一个源发送请求,显而易见,结果会是一个错误。你可以设置该模式以确保请求总是向当前的源发起的。
    • no-cors — 保证请求对应的 method 只有 HEADGET 或 POST 方法,并且请求的 headers 只能有简单请求头 (simple headers)。如果 ServiceWorker 劫持了此类请求,除了 simple header 之外,不能添加或修改其他 header。另外 JavaScript 不会读取 Response 的任何属性。这样将会确保 ServiceWorker 不会影响 Web 语义(semantics of the Web),同时保证了在跨域时不会发生安全和隐私泄露的问题。
    • cors — 允许跨域请求,例如访问第三方供应商提供的各种 API。预期将会遵守 CORS protocol  。仅有有限部分的头部暴露在 Response ,但是 body 部分是可读的。
    • navigate — 表示这是一个浏览器的页面切换请求(request)。 navigate请求仅在浏览器切换页面时创建,该请求应该返回HTML。

    默认模式

    可以以多种方式发起请求,并且请求的模式取决于发起请求的特定方式。

    例如,当一个 Request 对象以 Request.Request 方式创建,该Request 的 mode 的值为 cors 。

    然而,除了以 Request.Request 创建的请求,模式通常为 no-cors 。例如,对与嵌入资源发起的请求,除非存在 crossorigin 属性,即对于 <link> 、 <script> (除了和模块一起使用之外)、 <img><audio><video>、 <object>、 <embed>还有 <iframe> 元素,在大多数情况下是使用 no-cors 模式。

    示例

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

    In the following snippet, we create a new request using theconstructor (for an image file in the same directory as the script), then save the request mode in a variable:

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

    规范

    规范状态备注
    Fetch
    mode
    Living StandardInitial definition

    浏览器兼容性

    BCD tables only load in the browser

    The compatibility table on this page is generated from structured data. If you'd like to contribute to the data, please check out https://github.com/mdn/browser-compat-data and send us a pull request.

    参见

    如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

    扫码二维码加入Web技术交流群

    发布评论

    需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
    列表为空,暂无数据

    词条统计

    浏览:142 次

    字数:6730

    最后编辑:7年前

    编辑次数:0 次

      我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
      原文