如果用户试图在脱机时打开未缓存的页面,我的服务工作人员应运行以下方法unableToResolve()
,但页面显示:
无法连接Firefox无法建立到服务器的连接
在控制台中,我收到错误:
加载“www.examplesite.co.uk”失败。ServiceWorker向FetchEvent.respondWith()传递了一个承诺,该承诺使用非响应值“未定义”解析。
我的服务工人运行良好,否则,所以我不知道这可能是什么。
self.addEventListener("fetch", function(event) {
var request = event.request;
if (request.method !== 'GET') {
return;
}
event.respondWith(
caches.match(event.request).then(function(cached) {
var networked = fetch(event.request).then(fetchedFromNetwork, function() {
return cached;
}).catch(unableToResolve);
return networked;
function fetchedFromNetwork(response) {
var cacheCopy = response.clone();
caches.open(version + 'offlinemode').then(function add(cache) {
cache.put(event.request, cacheCopy);
});
return response;
}
function unableToResolve() {
return new Response('<h1>Service Unavailable</h1>', {
status: 503,
statusText: 'Service Unavailable',
headers: new Headers({
'Content-Type': 'text/html'
})
});
}
})
);
});
2条答案
按热度按时间aemubtdh1#
在我朋友的帮助下,我们解决了这个问题。我们需要在它进入unableToResolve()之前抛出一个错误:“)
gfttwv5a2#
在这里看到我的答案:问题是CORS仅在某些路线上活动,而不是在服务器上全局活动。
https://stackoverflow.com/a/74286683/7486794