Chrome安定版46を使用しています。
私は非常に基本的なサイトを持っています。1 つの button.onclick それとfetch('a')1 つの<a>タグが開きますb。URLaと の両方bが存在しません。Service Worker でそれらをキャッチし、new Response().
取得するボタンをクリックするとa、Service Worker は関与せず、404 エラーが発生します。
しかし、へのリンクをクリックするbと、Service Worker がオンフェッチして応答を返します。
質問fetch('a'): Service Worker がリクエストの FetchEvent を取得しないのはなぜですか?
以下のファイルを参照してください
HTML
<html>
<body>
<p><button onclick="fetch('a');">fetch a</button></p>
<p><a href="b">go to b</a></p>
<script src="js.js" defer></script>
</body>
</html>
js.js
navigator.serviceWorker.register('sw.js');
sw.js
self.onfetch = function(event) {
var request = event.request;
event.respondWith(
caches.match(request).then(function(response) {
return new Response('here is your onfetch response');
})
);
};