Есть service worker все работает.
Но я хочу при запросе из кеша в ответ добавить заголовок X-Powered-By.
Пытаюсь сделать это таким образом.
var version='5.4.3.5';
self.addEventListener('install',function(ev){
ev.waitUntil(caches.open(version).then(function(cache){
if(location.protocol=='http:'||location.protocol=='https:'){
return fetch('/resource.json').then(function(res){
return res.json();
}).then(function(files){
return cache.addAll(files);
});
}
}));
self.skipWaiting();
});
self.addEventListener('activate',function(ev){
ev.waitUntil(caches.keys().then(function(keyList){
return Promise.all(keyList.map(function(key){
if(version!=key){
return caches.delete(key);
}
}));
}));
});
self.addEventListener('fetch',function(ev){
ev.respondWith(caches.match(ev.request).then(function(res){
return res||fetch(ev.request).then(function(res){
var resToCache=res.clone();
// по идее сюда нужно вставить следующую строку
//resToCache.headers.append('X-Powered-By','nginx');
// но с ней все перестает работать.
caches.open(version).then(function(cache){
if(ev.request.method!='POST'&&(new URL(ev.request.url).protocol=='http:'||new URL(ev.request.url).protocol=='https:')){
cache.put(ev.request,resToCache);
}
});
return res;
}).catch(function(){
return caches.match('/offline.html');
});
}));
});
Но это не работает.