Fetch API - Web API 接口参考 编辑
Fetch API 提供了一个获取资源的接口(包括跨域请求)。任何使用过 XMLHttpRequest
的人都能轻松上手,而且新的 API 提供了更强大和灵活的功能集。
概念和用法
Fetch 提供了对 Request
和 Response
(以及其他与网络请求有关的)对象的通用定义。使之今后可以被使用到更多地应用场景中:无论是 service worker、Cache API、又或者是其他处理请求和响应的方式,甚至是任何一种需要你自己在程序中生成响应的方式。
它同时还为有关联性的概念,例如CORS和HTTP原生头信息,提供一种新的定义,取代它们原来那种分离的定义。
发送请求或者获取资源,需要使用 WindowOrWorkerGlobalScope.fetch()
方法。它在很多接口中都被实现了,更具体地说,是在 Window
和 WorkerGlobalScope
接口上。因此在几乎所有环境中都可以用这个方法获取到资源。
fetch()
必须接受一个参数——资源的路径。无论请求成功与否,它都返回一个 Promise 对象,resolve 对应请求的 Response
。你也可以传一个可选的第二个参数 init
(参见 Request
)。
一旦 Response
被返回,就可以使用一些方法来定义内容的形式,以及应当如何处理内容(参见 Body
)。
你也可以通过 Request()
和 Response()
的构造函数直接创建请求和响应,但是我们不建议这么做。他们应该被用于创建其他 API 的结果(比如,service workers 中的 FetchEvent.respondWith
)。
注意:更多关于 Fetch API 的用法,参考 Using Fetch,以及一些概念 Fetch basic concepts。
中止 fetch
浏览器已经开始为 AbortController
和 AbortSignal
接口(也就是Abort API)添加实验性支持,允许像 Fetch 和 XHR 这样的操作在还未完成时被中止 。请参阅接口页面了解更多详情。
Fetch 接口
WindowOrWorkerGlobalScope.fetch()
- 包含了
fetch()
方法,用于获取资源。 Headers
- 相当于 response/request 的头信息,可以使你查询到这些头信息,或者针对不同的结果做不同的操作。
Request
- 相当于一个资源请求。
Response
- 相当于请求的响应
Fetch mixin
Body
- 提供了与 response/request 中的 body 有关的方法,可以定义它的内容形式以及处理方式。
规范
规范 | 状态 | 说明 |
---|---|---|
Fetch | Living Standard | Initial 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论