gpt4 book ai didi

service-worker - 在 Service Worker 中处理 fetch 但允许客户端查看重定向

转载 作者:行者123 更新时间:2023-12-04 20:38:21 26 4
gpt4 key购买 nike

我有一个网址,/users/sign_out ,这应该是注销用户并将他们重定向到我的根 URL,/ .我想通过我的服务 worker 处理这个获取,因为我想在将用户发送回 root 之前清除缓存中的一些项目。但是,由于客户端没有看到从 Service Worker 获取时发生的重定向,因此用户会在我的启动画面上看到重定向前地址 /users/sign_out。 .

目前有什么方法可以处理获取并允许客户端查看正确的最终 url?

看来最终还是会有Response.redirect()允许使用最终 url 更新响应的方法。看起来也有可能是某种finalURL也可以解决这种情况的选项。但是现在有什么我可以使用的吗?在 Twitter 上,Jake Archibald (@jaffathecake) 说我可以自己构建一个新的响应——我可以,但即使在稍微查看了规范和 MDN 文档后,我仍然无法弄清楚如何为它。

如果实际上有一种方法可以构建满足我需要的 Response 对象,有人可以告诉我它是如何工作的吗?

最佳答案

https://github.com/GoogleChrome/samples/tree/gh-pages/service-worker/mock-responses 有一个例子展示如何创建 Response对象并使用它来响应 fetch事件。

在这种情况下,我们正在创建一个 200 OK用 body 来回应,但没有什么能阻止你做出任意的回应。你可能想要一个 302 Found 对于您的用例,您可以执行以下操作:

var responseInit = {
status: 302,
statusText: 'Found',
headers: {
Location: '/' // Or whatever URL you want to redirect to.
}
};

var redirectResponse = new Response('', responseInit);
event.respondWith(redirectResponse);

您可以在 fetch 中包含清除缓存的代码。在您响应事件之前,您显然想检查 event.request.url首先要确保您只响应对 /users/sign_out 的请求。与您的自定义响应。

关于service-worker - 在 Service Worker 中处理 fetch 但允许客户端查看重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31193699/

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