我知道 Fetch API 使用 Promise
,它们都允许您向服务器发出 AJAX 请求。
我读到 Fetch API 有一些额外的特性,这些特性在 XMLHttpRequest
中不可用(在 Fetch API polyfill 中,因为它基于 XHR
)。
Fetch API 有哪些额外的功能?
最佳答案
有些事情您可以使用 fetch 而不是 XHR:
- 您可以将缓存 API 与请求和响应对象一起使用;
- 您可以执行
no-cors
请求,从未实现 CORS 的服务器获取响应。您无法直接从 JavaScript 访问响应主体,但可以将其与其他 API(例如缓存 API)结合使用; - 流式响应(使用 XHR,整个响应缓冲在内存中,使用 fetch,您将能够访问低级流)。这在所有浏览器中尚不可用,但很快就会可用。
有一些您可以使用 XHR 完成但使用 fetch 无法完成的事情,但它们迟早会可用(请阅读此处的“ future 改进”段落:https://hacks.mozilla.org/2015/03/this-api-is-so-fetching/) :
- 中止请求(这现在适用于 Firefox 和 Edge,正如@sideshowbarker 在他的评论中解释的那样);
- 报告进度。
关于javascript - 获取 API 与 XMLHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35549547/