Воспроизведение аудио / видео контента в Интернете обычно включает запрос Range:
и частичный ответ. Это может быть проблематично c внутри сервисного работника, если вы не готовы его обработать.
Предполагая, что вы не планируете кэшировать свои медиа-файлы и хотите получить ответ чтобы прийти напрямую из сети, я бы рекомендовал изменить обработчик fetch
вашего сервисного работника, чтобы он не вызывал respondWith()
, когда связанный запрос имеет заголовок Range:
.
self.addEventListener("fetch", function(event) {
if (event.request.headers.has('Range')) {
// Returning, without calling event.respondWith(),
// will cause the browser to handle the request as
// if there were no service worker involvement.
return;
}
event.respondWith(
caches.match(event.request).then(function(response) {
if (response) {
return response;
}
return fetch(event.request);
})
);
});