ServiceWorker возвращает тип содержимого text / html вместо jpeg - PullRequest
0 голосов
/ 21 октября 2019

Если вы посмотрите на это изображение, вы увидите, что запрошенный файл JPEG возвращается ServiceWorker как text/html.

enter image description here

IЯ имею представление, почему это может происходить, но я не знаю, как с этим справиться.

Когда очищается кеш и не установлен ServiceWorker, все в порядке, и файл JPEG возвращается правильно (дажес правильными заголовками ответов, такими как Access-Control-Allow-Origin: *) Однако, когда ServiceWorker установлен во второй перезагрузке страницы, ответ каким-то образом изменяется, и тип содержимого устанавливается на text/html плюс он даже теряет все заголовки ответов для CORS.

Я думаю, это из-за одного предварительно кэшированного файла javascript, в котором изображение выбирается с помощью JavaScript, но каким-то образом ответ теряет все, что мне нужно, поэтому он может работать, и я получаю ошибку CORS.

Я получаюкак это:

self.addEventListener('fetch', (event) => {
    event.respondWith(
        caches.match(event.request)
            .then((response) => response || fetch(event.request))
            .catch(() => caches.match('offline')),
    );
});

И чтобы добавить последнее, если вы посмотрите слева от изображения, вы увидите, что то же изображение выбирается также для всегопростой тег <img> и все работает отлично, и ServiceWorker даже возвращает его с правильным ответом.

Что мне делать?

Субдомен cdn отправляется на S3-сервер.

...