小编典典

获取 API 与 XMLHttpRequest

all

我知道 Fetch API 使用Promises 并且它们都允许您向服务器执行 AJAX 请求。

我读过 Fetch API 有一些额外的功能,这些功能在XMLHttpRequest(和 Fetch API polyfill
中,因为它基于XHR)中不可用。

Fetch API 有哪些额外的功能?


阅读 125

收藏
2022-05-26

共1个答案

小编典典

您可以使用 fetch 而不是 XHR 来做一些事情:

  • 您可以将 Cache API 与请求和响应对象一起使用;
  • 您可以执行no-cors请求,从未实现 CORS 的服务器获取响应。您不能直接从 JavaScript 访问响应正文,但可以将其与其他 API(例如 Cache API)一起使用;
  • 流式响应(使用 XHR,整个响应缓冲在内存中,使用 fetch 您将能够访问低级流)。这在所有浏览器中尚不可用,但很快就会出现。

您可以使用 XHR 完成一些您无法使用 fetch 完成的事情,但它们迟早会可用(阅读此处的“未来改进”段落:https://hacks.mozilla
.org/2015/03/this-api-is-so-fetching/):

  • 中止请求(这现在可以在 Firefox 和 Edge 中使用,正如 @sideshowbarker 在他的评论中解释的那样);
  • 报告进度。

这篇文章https://jakearchibald.com/2015/thats-so-
fetch/包含更详细的描述。

2022-05-26