Fetch 基本概念 - Web API 接口参考 编辑

草案
本页尚未完工.

Fetch 是一个现代的概念, 等同于 XMLHttpRequest。它提供了许多与XMLHttpRequest相同的功能,但被设计成更具可扩展性和高效性。本文介绍了 Fetch API的一些基本概念。

Note: 这篇文章可能还需要修改。如果你觉得有的概念可以解释的更好,让人们在MDN论坛上知道,或 Mozilla IRC (#mdn room)。

简而言之

Fetch 的核心在于对 HTTP 接口的抽象,包括 RequestResponseHeadersBody,以及用于初始化异步请求的 global fetch。得益于 JavaScript 实现的这些抽象好的 HTTP 模块,其他接口能够很方便的使用这些功能。

Service Workers 是大量使用Fetch的API的一个示例。

除此之外,Fetch 还利用到了请求的异步特性——它是基于 Promise 的。

Guard

Guard 是 Headers 对象的特性,基于不同的情况,它可以有以下取值:immutable、requestrequest-no-corsresponse 或 none。

当使用 Headers() constructor 创建一个新的 Headers 对象的时候,它的 guard 被设置成 none(默认值)。当创建 Request 或 Response 对象的时候,它将拥有一个按照以下规则实现的与之关联的 Headers 对象:

新对象的类型创建时的构造函数关联的 Headers 对象的 guard
RequestRequest()request
Request()mode 设置成 no-corsrequest-no-cors
ResponseResponse()response
error()redirect() 方法immutable

头信息的 guard 会影响 set()delete() 和 append() 方法。如果你试图修改 guard 是 immutable 的 Headers 对象,那么会抛出一个 TypeError。以下情况则不会抛出错误:

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

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

发布评论

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

词条统计

浏览:112 次

字数:9316

最后编辑:8年前

编辑次数:0 次

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