javascript - 获取 API 与 XMLHttpRequest

标签 javascript ajax xmlhttprequest fetch-api

我知道 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 在他的评论中解释的那样);
  • 报告进度。

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

关于javascript - 获取 API 与 XMLHttpRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35549547/

相关文章:

javascript - Ajax 程序在 Chrome 上无法运行

dom - 我可以一次性将 Ajax 请求 XML 对象追加到我的文档树中吗?

javascript - 如何使用 xmlhttprequest 将值作为变量传输?

javascript - 在不同的浏览器中同时显示相同的内容

asp.net - 按钮禁用..但是

javascript - 有没有办法在 Firefox OS 中预填电子邮件正文

javascript - 如何将 jquery datepicker 添加到动态创建的输入(位于名为 page 的 ajax 中)

javascript - 为什么我的应用程序在 Firefox 中的 CPU 使用率达到最大值?

javascript - 在 html 中占用一些额外空间的标签

ajax - 如何使用 "wp_get_nav_menu_items"在WordPress中显示3级分层菜单?