浏览器上的后退按钮不会将控制流发送到 API
Back button on browser does not send the control flow to API
我有两个 API:
- /登录(returns登录jsp)
- /home(returns主页jsp)
功能:
最初,我在登录屏幕上,按下登录按钮后,我转到主屏幕。
当我在主页屏幕上使用注销按钮注销时,我被重定向到登录屏幕。
在 /home API 中,条件如下:
if (userLoggedIn()) {
return new ModelAndView("/homePage");
} else {
return new ModelAndView("/loginPage");
}
问题:
当我注销并转到登录页面时,我单击浏览器的后退按钮。
我被重定向到主页。 (不正确)
但是,如果我直接使用url打开主页,我会被重定向到登录页面(正确)
我调试了应用程序,发现在按下后退按钮时,控件甚至没有进入 /home API。
如何确保在按下后退按钮时,我的屏幕被重定向到登录页面?
将 [OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")] 设置为操作。这样请求也将在后退按钮上发出,您的功能将进行其余的重定向。
找到解决办法。我的问题已解决。
在 servlet 中,为无缓存添加以下行。
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);
我有两个 API:
- /登录(returns登录jsp)
- /home(returns主页jsp)
功能:
最初,我在登录屏幕上,按下登录按钮后,我转到主屏幕。
当我在主页屏幕上使用注销按钮注销时,我被重定向到登录屏幕。
在 /home API 中,条件如下:
if (userLoggedIn()) {
return new ModelAndView("/homePage");
} else {
return new ModelAndView("/loginPage");
}
问题:
当我注销并转到登录页面时,我单击浏览器的后退按钮。 我被重定向到主页。 (不正确)
但是,如果我直接使用url打开主页,我会被重定向到登录页面(正确)
我调试了应用程序,发现在按下后退按钮时,控件甚至没有进入 /home API。
如何确保在按下后退按钮时,我的屏幕被重定向到登录页面?
将 [OutputCache(NoStore = true, Duration = 0, VaryByParam = "None")] 设置为操作。这样请求也将在后退按钮上发出,您的功能将进行其余的重定向。
找到解决办法。我的问题已解决。
在 servlet 中,为无缓存添加以下行。
response.setHeader("Cache-Control", "no-cache, no-store, must-revalidate");
response.setHeader("Pragma", "no-cache");
response.setDateHeader("Expires", 0);