Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 有没有办法在服务工作者中重定向导航请求?_Javascript_Http_Service Worker - Fatal编程技术网

Javascript 有没有办法在服务工作者中重定向导航请求?

Javascript 有没有办法在服务工作者中重定向导航请求?,javascript,http,service-worker,Javascript,Http,Service Worker,我有一个特殊的/home路由,可以将不同类型的用户重定向到不同的地方。这也是我的PWA清单中的start\u url。但是,如果用户处于脱机状态(因此无法获取服务器/home路由),而不是显示脱机页面,我希望默认为主页(“/”)并重定向到那里,或者至少显示该内容(缓存“/”路由) 以下是提取侦听器的简化版本: var staticRoutes=['/']; self.addEventListener('fetch',函数(事件){ 事件响应( //如果请求是静态路由,请尝试获取它;如果不能,则返

我有一个特殊的
/home
路由,可以将不同类型的用户重定向到不同的地方。这也是我的PWA清单中的
start\u url
。但是,如果用户处于脱机状态(因此无法获取服务器
/home
路由),而不是显示脱机页面,我希望默认为主页(“/”)并重定向到那里,或者至少显示该内容(缓存“/”路由)

以下是提取侦听器的简化版本:

var staticRoutes=['/'];
self.addEventListener('fetch',函数(事件){
事件响应(
//如果请求是静态路由,请尝试获取它;如果不能,则返回缓存的页面
staticRoutes.indexOf(新URL(event.request.URL.pathname)>-1
?获取(event.request).catch(函数(){
返回caches.match(事件.请求).then(函数(响应){
返回响应;
})
:caches.match(事件.请求).然后(函数(响应){
返回(
回应||
fetch(event.request).catch(function(){
如果(event.request.mode===‘导航’){
if(新URL(event.request.URL).pathname==='/home'){
//我听到了什么
//1.将用户重定向到“/”路由(让其通过服务人员)
//2.只需显示缓存中“/”路由的内容
}
}
})
)
})
)
})
要实现#2,您可以将其放在上面的方框中:

返回caches.match(新请求('/');
我已经试过了,但服务人员没有更新:face palm: