Service worker fetch事件不是由Google API请求触发的



我发现我对Google API的请求不会触发service-worker fetch事件。获取静态资源和其他api将按预期触发事件。

演示:https://laurieboyes.github.io/test-gapi-sw/

演示代码:https://github.com/laurieboyes/test-gapi-sw/blob/master/index.html

我还没有找到任何文档表明这是通过设计的。

有人能解释为什么谷歌API请求不触发取回事件?会不会和oAuth有关?

您可以检查您的DOM并注意到Google的OAuth库将几个不可见的<iframe>注入到您的页面中,就像这样:

<iframe name="oauth2relay368346125" id="oauth2relay368346125" 
  src="https://accounts.google.com/o/oauth2/postmessageRelay?parent=https%3A%2F%2Flaurieboyes.github.io&amp;...&amp;forcesecure=1"
  tabindex="-1" aria-hidden="true" 
  style="width: 1px; height: 1px; position: absolute; top: -100px;">
</iframe>

这些<iframe>用于与Google API的所有网络通信。请注意,<iframe>来自https://accounts.google.com源,因此这些调用是从您的service worker的作用域之外进行的(仅在https://laurieboyes.github.io内工作)。

出于安全原因,你的Service Worker没有办法拦截这个通信。

相关内容

  • 没有找到相关文章

最新更新