Javascript 是否可以使用service worker缓存动态php文件?

Javascript 是否可以使用service worker缓存动态php文件?,javascript,php,session,cookies,service-worker,Javascript,Php,Session,Cookies,Service Worker,我试图在登录时(使用会话cookie)缓存动态php文件中的html,但html文件是从服务器中获取的,没有来自会话cookie的凭据。(我不在URL中指定文件名,仅在路径中指定) (我省略了self.addEventListener(“fetch”,函数(事件)) 当我查看“/q/中的text/html文件时,服务人员从服务器获取了它,但没有php会话cookie PHPSESSID,因此内容是错误的 (否则它在脱机状态下工作正常) 有解决方法吗?中解释了此行为 HTTP cookies(以及

我试图在登录时(使用会话cookie)缓存动态php文件中的html,但html文件是从服务器中获取的,没有来自会话cookie的凭据。(我不在URL中指定文件名,仅在路径中指定)

(我省略了self.addEventListener(“fetch”,函数(事件))

当我查看“/q/中的text/html文件时,服务人员从服务器获取了它,但没有php会话cookie PHPSESSID,因此内容是错误的

(否则它在脱机状态下工作正常)


有解决方法吗?

中解释了此行为

HTTP cookies(以及其他一些东西)被称为“”

传出HTTP请求中是否包含凭据取决于
请求
对象的值。默认情况下,
凭据
设置为
'omit'
,这会导致您看到的行为。如果希望包含HTTP cookie等凭据,则需要使用
请求
对象其
凭据
属性设置为
'include'

为此,您不应将字符串数组传递到
cache.addAll()
,而应传递带有正确
凭据
模式显式设置的
请求
对象数组。下面是代码的更改方式:

const requestsWithCredentials = [
  '/q/',
  '/q/sw.js',
  '/q/js/main.js',
  '/q/js/init.js',
  '/q/js/lib.js',
  '/q/css/css.css',
  '/q/images/b.jpg',
  '/q/apps/BOK/js/main.js'
].map(url => new Request(url, {credentials: 'include'}));

// Later...
cache.addAll(requestsWithCredentials);
const requestsWithCredentials = [
  '/q/',
  '/q/sw.js',
  '/q/js/main.js',
  '/q/js/init.js',
  '/q/js/lib.js',
  '/q/css/css.css',
  '/q/images/b.jpg',
  '/q/apps/BOK/js/main.js'
].map(url => new Request(url, {credentials: 'include'}));

// Later...
cache.addAll(requestsWithCredentials);