Browser Cache API не работает для сервисов с аутентификацией cookie - PullRequest
0 голосов
/ 13 мая 2019

Я пытаюсь использовать механизм браузера Cache API, но API, который будет кэшироваться, использует cookie-аутентификацию. И я получаю сообщение об ошибке «неавторизованный 401». Я подозреваю, что http-cookie, который должен быть отправлен для всех запросов API, не отправляется, когда я звоню из cache.add (apiurl)

         if ('caches' in window) {
                caches.open('cachename').then(cache => {
                    cache.add(apiUrl).then(() => {
                        //done!
                    })
                });
            }

1 Ответ

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

Я нашел способ справиться с этим. Вместо добавления URL-адреса в методе add () создайте объект Request с «credentials: include» или «credentials: same-orgin» в зависимости от настроек CORS.

 if ('caches' in window) {
            caches.open('cachename').then(cache => {
                cache.add(new Request('apiurl', {credentials: 'include'}).then(() => {
                    //done!
                })
            });
        }

// Или

if ('caches' in window) {
            caches.open('cachename').then(cache => {
                cache.add(new Request('apiurl', {credentials: 'same-origin'}).then(() => {
                    //done!
                })
            });
        }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...