【发布时间】:2016-06-03 15:18:18
【问题描述】:
我知道 Fetch API 使用 Promises 并且它们都允许您向服务器发出 AJAX 请求。
我了解到 Fetch API 有一些额外的功能,这些功能在 XMLHttpRequest 中不可用(以及在 Fetch API polyfill 中,因为它基于 XHR)。
Fetch API 有哪些额外功能?
【问题讨论】:
-
虽然我当时不记得了,但你可以用 XHR 做一两件事,而用 fetch 做不到。你说你读过 fetch 有额外的可能性,那些文章如果不说它们是什么就不是很好
-
发现了 fetch 不能做的两件事,而 XHR 则可以......你不能在 fetch 中设置自己的请求超时值,也不能获取进度事件
-
Fetch 对于大多数类型的 XMLHttpRequest 来说只是一种简化的处理方式。如果您的用例符合 Fetch 的功能,请使用它。当您深入了解它时,XMLHttpRequest API 对于大多数人使用它的目的来说是丑陋的。 Fetch 旨在提供一种更简洁的做事方式,不需要包装在 XMLHttpRequest 周围的库来使其可口。
-
@jfriend00,这不对,fetch不是一种简化的方式,而是一种更底层的方式(确实,XHR现在是用Fetch来定义的:xhr.spec.whatwg.org/#the-send%28%29-method)。
-
@Marco - 你怎么能不说
fetch(url).then(function(data) (...));不比使用XMLHttpRequest做同样的事情更简单呢?它可能还有很多其他功能,但天哪,它确实更容易用于常见的事情。这是一个清理过的 API。
标签: javascript ajax xmlhttprequest fetch-api