服务工作者失败 - 重定向响应,而RedirectMode不是"关注"

时间:2018-04-24 18:12:54

标签: javascript redirect service-worker offline-caching

浏览器:Firefox 58.0.2(64位)

我正在尝试根据指导very simple service workerhere编写here来缓存离线模式的内容。

第一次加载页面时,服务工作者已正确安装。我可以通过查看:debugging#workers。来确认它的运行情况。

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

  

https://[my网址的网站经历过网络协议   无法修复的违规行为。

     

您尝试查看的页面因为错误而无法显示   检测到数据传输。

     

请与网站所有者联系,告知他们此问题。

控制台显示以下错误:

  

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

在Chrome中,我明白了:

  

未捕获(承诺)TypeError:无法执行' fetch' on' ServiceWorkerGlobalScope':无法构建具有模式为'导航'的请求的请求。和一个非空的RequestInit。

this thread,我添加了{重定向:"关注"参数fetch()函数,但无济于事。

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

根据我的理解,它是引起问题的反应,而不是获取,对吗?这是因为我的服务器在提供请求的内容时发出了重定向?

那么如何处理服务工作者的重定向?显然会有一些,我仍然想要缓存数据。

1 个答案:

答案 0 :(得分: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发现的两个错误是无关的。

Internet上有许多报告,其中包括使用Firefox的Gmail用户,损坏的内容错误网络协议违规等。发现: