有没有办法让Javascript在点击刷新后重定向页面(会话已经过期)

Is there a way to make Javascript redirect the page after cliking refresh( the session already expired)

本文关键字:会话 过期 重定向 Javascript 刷新 有没有      更新时间:2023-09-26

我在Javascript中保留了一个计数器,当计数器达到0时,它将触发以下AJAX调用:

  function logout2() {
   $.ajax({
       type: "GET",
       dataType: "json",
       url: "app/logout",
       timeout: 20000,
       success: function() {
            ;
       },
       error : function(xhr, textStatus, errorThrown) {
            ajaxErrorHandler(xhr, textStatus, errorThrown);
       }
})

}

正如你所看到的,它将从服务器端正式注销,但页面将保持不变,这意味着页面保持不变,不会自动重定向到登录页面。只有当用户做了一些特定的事情(比如点击这个页面上的按钮)时,才会触发一个弹出窗口,说"会话超时",并将用户重定向到登录页面。

然而,现在我被要求对此进行一点增强,在调用上面的AJAX函数后,不仅用户的操作(如单击按钮)会触发重定向,而且当用户刷新页面时,它也会这样做。

我试了一点,但真的没有收获。当前页面过期后,如果我刷新,它不会弹出会话超时对话框,也不会重定向到所需页面。

在用户刷新后,我可以在JavaScript或Ajax级别上做些什么来实现吗?我也可以弹出对话框,然后重定向?

如何使用

编辑

success: function() {
        alert ("You have been logged out");"
        window.location.href = "you_have_been_logged_out.jsp";  // or something
   },

然而,正常的方法是使用servlet过滤器来检查用户是否已登录(存储在会话变量中的值)

您可以向jsp添加类似的标志

<%
if(session.getAttribute('flag')==null)
   response.sendRedirect('desired/page');
%>

只要页面请求中的会话标志为null,它就会将页面重定向到重定向页面。因此,当用户单击刷新按钮时,它会被重定向。只需在注销时在服务器端将此标志设为null,并在登录时启用它。