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');
})
);
};