我有以下应用程序结构。
https://example-a.com
https://example-b.com
example-a.com/index.html
从 example-b.com/app.html
加载一个 iframe,它产生一个服务工作者和一个网络工作者。
Web 工作者向
example-b.com/intercept
发出网络请求。 Service Worker、Web Worker 和网络请求目标 URL 都属于同源 (example-b.com
),请求 URL 属于 Service Worker 范围(它们都在域的根目录)。
在 Safari 和 Chrome 上,service worker 可以成功拦截来自 web worker 的此类请求。但是,在 Firefox 上,此类请求不会被 SW 拦截。
值得一提的是,service worker可以成功拦截iframe html文档和正则脚本的请求。我遇到的问题与网络工作者特别相关。
我知道 Firefox 有一些额外的服务工作者限制(例如,在私有模式下禁用 SW),但我找不到与我的用例相关的任何限制。
有没有人遇到过类似的问题?这是一个已知的 Firefox 限制还是错误?有没有标题可以帮助我解决这个问题?
预期行为:service worker 成功拦截请求并返回一个单词“intercepted”。
实际行为: