2

我正在实现一个服务工作者,它缓存并为我网站上的某些路由提供应用程序外壳。

我遇到了一个问题,即路由有时(例如,基于查询参数)会导致服务器端重定向。但是,一旦为用户提供了应用程序外壳,他们就再也不会真正访问服务器,并且重定向也不会发生。

这似乎是应用程序外壳固有的问题。寻求处理此类案件的想法和指导。


为清楚起见的其他详细信息:

  1. 用户点击https://www.example.com
  2. 安装 Service Worker,随后为/路由提供应用程序外壳
  3. 一段时间后,用户再次访问该站点,但他们的帐户已被标记为进行安全审查。通常,服务器会处理此重定向,将用户重定向到,例如,https://www.example.com/account/security
  4. 但是,由于应用程序外壳的存在,服务器没有机会执行这样的重定向。
4

1 回答 1

0

(从评论部分进行宣传。这不是唯一可能的方法,但取决于您对通过客户端 JavaScript 运行重定向逻辑的舒适程度,它应该完成您所描述的。)

在那种情况下,听起来您需要让客户端通过轻量级 fetch() 定期询问服务器(可能每次有 History API 导航时),是否有理由转到特殊页面。然后如果服务器响应是,并且您需要重定向,您可以显式设置location安全检查 URL,该 URL 应该从 App Shell 导航中列入黑名单。

于 2017-07-05T13:02:34.783 回答