Fetch API - What's the use of redirect: manual
我最近一直在使用Javascript Fetch API。 据我了解,默认情况下,所有重定向都是透明处理的,最后,我从重定向链中的最后一个调用得到响应。
但是,我可以使用{redirect:'manual'}调用fetch,在这种情况下,它将返回不可用信息的opaqueredirect响应。 来自https://fetch.spec.whatwg.org/#concept-filtered-response-opaque-redirect
An opaque-redirect filtered response
is a filtered response whose type is"opaqueredirect", status is 0, status message is the empty byte sequence, header list is empty, body is null, and trailer is empty.
https://fetch.spec.whatwg.org/#http-fetch表示,如果将重定向设置为"手动",则响应将变为opaqueredirect:
Switch on request’s redirect mode:
...
- manual
Set response to an opaque-redirect filtered response whose internal response is actualResponse.
该规范还说:
In other words, an opaque filtered response and an opaque-redirect filtered response are nearly indistinguishable from a network error.
考虑到所有这些,为什么在使用Fetch API时将一组重定向到手册? 在我看来,这似乎毫无用处。 是否有一些有用的用例?
我认为简短的答案是:除非您要使用服务人员代码(例如https://github.com/whatwg/fetch/issues/66所描述的内容)进行操作,否则您永远都不会想要
更长的答案:
HTML规范似乎要求浏览器在浏览器开始导航到资源时最初将重定向模式设置为
无论如何,Fetch API的设计目的是公开浏览器在提取中使用的所有相同原语,但这并不意味着Web应用程序代码中这些原语总是有很好的用途(与浏览器本身对原语)。
因此,我认为Fetch规范曾经要求即使您可以使用
但是由于https://github.com/whatwg/fetch/issues/66,该行为似乎已更改,它描述了一种(角落)情况,其中服务工作者代码中需要
您可以在Fetch API中进行设置的类似情况,但在Web应用程序代码中实用性很小的情况是