- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如果用户尝试在离线状态下打开未缓存的页面,我的服务工作线程应运行以下方法 unableToResolve()
,但页面会显示:
Unable to connect Firefox can’t establish a connection to the server
在控制台中我收到错误:
Failed to load ‘www.examplesite.co.uk’. A ServiceWorker passed a promise to FetchEvent.respondWith() that resolved with non-Response value ‘undefined’.
我的服务工作人员运行良好,否则我不确定这可能是什么。
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'
})
});
}
})
);
});
最佳答案
在 friend 的帮助下,我们解决了这个问题。我们需要在错误进入unableToResolve()之前抛出一个错误:')
event.respondWith(
caches.match(event.request).then(function(cached) {
var networked = fetch(event.request).then(fetchedFromNetwork, function(){if(cached === undefined){throw new Error('Network response was not ok.');}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'
})
});
}
})
);
关于jquery - ServiceWorker 向 FetchEvent.respondWith() 传递了一个 promise ,该 promise 以非响应值 ‘undefined’ 解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51989525/
我正在使用 service worker 并监听正在发出的任何网络请求... 我想知道请求是否来自或 这有可能吗? sw.js self.onfetch = event => { consol
在服务 worker 内部,如果请求失败,我会尝试返回发出的请求作为响应。看似很简单,但行不通。 事实上,当我尝试返回它时,它返回一个空对象,即使使用 .clone() 也是如此。 代码如下: fet
尝试使用 this 教程从我的网站创建 PWA - Progressive Web App 后,我在控制台中收到这些错误和警告。 The FetchEvent for "https://www.goo
我使用的是 Chrome 稳定版 46。 我有一个非常基本的网站。一个按钮。单击那个 fetch('a')和一个打开 b 的标签.两个网址 a和 b不存在,我打算在 service worker 中捕
如果用户尝试在离线状态下打开未缓存的页面,我的服务工作线程应运行以下方法 unableToResolve(),但页面会显示: Unable to connect Firefox can’t estab
有时当我运行我的服务器时,控制台会给我一个错误: Failed to load ‘http://localhost:3000/browser-sync/socket.io/?EIO=3&transpo
我是一名优秀的程序员,十分优秀!