Javascript 如何对服务工作者使用POST http方法?

Javascript 如何对服务工作者使用POST http方法?,javascript,service-worker,Javascript,Service Worker,我在fetchin服务Worker中使用此命令 if (event.request.method =='POST') { event.respondWith(fetch(event.request,{method: 'post'})); return; } 但我得到了这个错误: 未捕获(承诺中)TypeError:未能在“ServiceWorkerGlobalScope”上执行“fetch”:无法使用模式为“navigate”的请求和非空的Reque

我在fetchin服务Worker中使用此命令

 if (event.request.method =='POST') {

        event.respondWith(fetch(event.request,{method: 'post'}));
        return;
    }
但我得到了这个错误:

未捕获(承诺中)TypeError:未能在“ServiceWorkerGlobalScope”上执行“fetch”:无法使用模式为“navigate”的请求和非空的RequestInit构造请求


我该怎么办?

根据您提供的示例代码,您似乎只想实现默认值,在处理
POST
请求的
获取
事件时,假装没有服务工作者行为

最简单的方法是首先不调用
event.respondWith()
。调用
event.respondWith()
是可选的,如果您没有在
fetch
处理程序中调用它,服务人员将查找任何其他已注册的
fetch
处理程序,并给它们一个响应的机会

如果
fetch
事件处理程序均未响应,则请求将通过浏览器缓存(取决于请求头和缓存状态)或网络完成,就像没有服务人员参与一样

如果出于某种原因,确实需要调用`event.respondWith(),但希望模拟默认行为,则使用

event.respondWith(fetch(event.request));

应该有效,即省略
{method:'post'}
位。
event.request
已经知道它是一个
POST
,因此不需要向
fetch()
传递任何其他内容来告诉它。

事件的类型是什么?