Workbox - workbox.cacheableResponse не работает при проверке заголовков ответов - PullRequest
0 голосов
/ 04 июня 2019

Я реализовал cacheableResponse для Workbox, проверив заголовок ответа от API.

Однако, похоже, он не кэширует запросы API, в заголовке которых присутствует x-is-cacheable.

Вот как я реализовал моего сервисного работника

const cacheableResponse = new workbox.cacheableResponse.Plugin({
    statuses: [0, 200],
    headers: {
        'x-is-cacheable': true,
    },
});

// APIs
workbox.routing.registerRoute(
  new RegExp('https://my-api-url.here'),
  workbox.strategies.networkFirst({
    cacheName: 'api-cache',
    plugins: [
      cacheableResponse
    ]
  })
);

Я могу подтвердить , что в заголовке ответа API присутствует x-is-cacheable: true и он возвращает код состояния 200.

Если я удаляю headers, тогда он работает, однако мне нужно отфильтровать конкретные API, которые мне нужно кэшировать.

У кого-нибудь есть идеи, почему это решение не работает?

1 Ответ

0 голосов
/ 04 июня 2019

Итак, я только что обнаружил на Github , что моя проблема в некоторой степени связана с CORS , и чтобы X-Is-Cacheable заработал, мне также нужно было добавить Access-Control-Expose-Headers: X-Is-Cacheable вместе с это.

ссылка: https://github.com/GoogleChrome/workbox/issues/2051

...