【问题标题】:Service Worker failure - Redirected response while RedirectMode is not "follow"Service Worker 失败 - RedirectMode 不是“follow”时重定向响应
【发布时间】:2018-04-24 18:12:53
【问题描述】:

浏览器:Firefox 58.0.2(64 位)

我正在尝试编写一个very simple service worker 来缓存离线模式的内容,遵循herehere 的指导。

当我第一次加载页面时,Service Worker 已正确安装。我可以通过查看 about:debugging#workers 来确认它正在运行。

但是,此时如果我尝试刷新页面(无论是在线还是离线),或导航到站点中的任何其他页面,我都会收到以下错误:

https://[my url] 的站点经历了网络协议 无法修复的违规行为。

由于出现错误,无法显示您尝试查看的页面 检测到数据传输。

请联系网站所有者告知他们这个问题。

控制台显示此错误:

未能加载“https://[my url]”。 ServiceWorker 将重定向的响应传递给 FetchEvent.respondWith() 而 RedirectMode 不是“跟随”。

在 Chrome 中,我得到了这个:

未捕获(承诺中)类型错误:无法在“ServiceWorkerGlobalScope”上执行“获取”:无法使用模式为“导航”且非空 RequestInit 的请求构造请求。

根据this thread,我在 fetch() 函数中添加了 { redirect: "follow" } 参数,但无济于事。

(是的,在进行更改后,我确实从 about:debugging 页面手动卸载了 Service Worker。)

据我了解,导致问题的是响应,而不是获取,对吧?这是因为我的服务器在提供请求的内容时发出了重定向?

那么我该如何处理 Service Worker 中的重定向?显然会有一些,我还是想缓存数据。

【问题讨论】:

    标签: javascript redirect service-worker offline-caching


    【解决方案1】:

    部分从https://superuser.com/a/1388762/84988分拆

    我有时会在 FreeBSD-CURRENT 上使用 Waterfox 56.2.6 的 Gmail 遇到问题。 (Waterfox 56 基于 Firefox 56.0.2。)有时只是重新加载页面;有时在恢复的会话中加载页面时;等等。

    FetchEvent.respondWith() | MDN 以警报开头:

    这是一项实验性技术 ...

    一眼看去,https://bugzilla.mozilla.org/buglist.cgi?quicksearch=FetchEvent.respondWith%28%29 发现的两个 bug 是不相关的。

    在 Internet 上有大量来自使用 Firefox 的 Gmail 用户的报告,涉及内容损坏错误网络协议违规等。发现:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-09-28
      • 1970-01-01
      • 2017-01-01
      • 2019-11-04
      • 1970-01-01
      • 2020-06-09
      • 2017-06-05
      • 1970-01-01
      相关资源
      最近更新 更多