gpt4 book ai didi

javascript - 我如何使用 Service Worker 的 POST http 方法?

转载 作者:行者123 更新时间:2023-11-29 21:24:37 25 4
gpt4 key购买 nike

我在 Service Worker 中使用这个命令获取数据

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

event.respondWith(fetch(event.request,{method: 'post'}));
return;
}

但是我得到这个错误:

未捕获( promise )类型错误:无法在“ServiceWorkerGlobalScope”上执行“获取”:无法使用模式为“导航”的请求和非空 RequestInit 构造请求。

我该怎么办?

最佳答案

根据您提供的示例代码,当您处理 fetch 事件时,您似乎只想实现默认的、假装没有服务 worker 的行为 POST 请求。

最简单的方法就是一开始就不要调用 event.respondWith()。调用 event.respondWith() 是可选的,如果您不在 fetch 处理程序中调用它,service worker 将查找任何其他已注册的 fetch 处理程序并给他们一个响应的机会。

如果 fetch 事件处理程序都没有响应,那么请求将通过浏览器缓存(取决于请求 header 和缓存状态)或网络来完成,就好像有没有服务人员参与。

如果出于某种原因,你确实需要调用`event.respondWith(),但你想模仿默认行为,那么使用

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

应该可以工作,即省略 {method: 'post'} 位。 event.request 已经知道它是一个 POST,因此没有必要将任何其他内容传递给 fetch() 以告知它那个。

关于javascript - 我如何使用 Service Worker 的 POST http 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37811774/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com