浏览器:Firefox 58.0.2(64位)
我正在尝试根据指导very simple service worker和here编写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。)
根据我的理解,它是引起问题的反应,而不是获取,对吗?这是因为我的服务器在提供请求的内容时发出了重定向?
那么如何处理服务工作者的重定向?显然会有一些,我仍然想要缓存数据。
答案 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用户,损坏的内容错误,网络协议违规等。发现: