有没有办法让Javascript在点击刷新后重定向页面(会话已经过期)
Is there a way to make Javascript redirect the page after cliking refresh( the session already expired)
我在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,并在登录时启用它。
相关文章:
- Laravel:在 ajax 请求的会话过期后重定向到登录
- 如何在Ruby on Rails会话过期时重新加载或刷新页面
- Node+Express会话过期
- 会话过期URL错误
- 会话在瓦丁中未过期
- 谷歌浏览器会话过期=空不起作用
- JavaScript 会话何时过期?如何在会话结束时删除 Cookie
- 显示会话过期消息
- 如何在会话过期时从 ajax 响应自动重定向网页
- Salesforce Streaming API:在会话过期后重新连接到Comed
- 扩展码点火器会话过期
- 如何使用JavaScript实现会话过期提醒
- 在浏览器中检查会话过期
- Navigator插件开发-会话过期
- 如何向用户显示会话过期消息
- Javascript在用户浏览器中保存表单值以防会话过期
- 当会话过期时,向JavaScript返回401
- Magento在会话过期后设置默认商店视图
- 当服务器会话过期时,使用javascript的settimeout()函数重定向到登录页面
- 当用户不活跃时,如何使PHP会话过期?