php – 如果AJAX url重定向到登录页面,则重定向到登录页面
发布时间:2020-12-13 21:51:16 所属栏目:PHP教程 来源:网络整理
导读:有一个ajax加载的内容到 div在我使用的页面中.项目中的所有页面都在登录时受到保护.根据逻辑,如果用户将窗口保持空闲300秒或更长时间,PHP将重定向到登录页面.这在页面刷新和导航时很有用.但是我遇到的问题是,当我加载一个 div或者任何带有AJAX输出的元素,有
有一个ajax加载的内容到< div>在我使用的页面中.项目中的所有页面都在登录时受到保护.根据逻辑,如果用户将窗口保持空闲300秒或更长时间,PHP将重定向到登录页面.这在页面刷新和导航时很有用.但是我遇到的问题是,当我加载一个< div>或者任何带有AJAX输出的元素,有时登录页面会在元素中加载.这是因为窗口处于空闲状态,PHP服务器重定向到登录页面.我需要将主页面重定向到登录页面,而不是通过AJAX加载重定向的登录页面.想法请.
PHP检查上次活动并重定向如果> 300秒, if(isset($_SESSION['active_last'])) { if((time()-$_SESSION['active_last'])>300) { $_SESSION['toredirect']=$_SERVER['REQUEST_URI']; $rd_loc=BASEPATH."login/?error=timeout"; header("location: $rd_loc"); } $_SESSION['active_last']=time(); } 解决方法
这是常见问题,因为AJAX请求会将响应附加到您要显示的位置.你需要自己处理它.这是我的解决方案,在Session过期的情况下,请求是AJAX我返回状态代码401然后这是我在全球级别处理它的方式.我已将此代码放在母版页/模板中.
$(document).ajaxError(function (event,jqxhr,settings,exception) { if (jqxhr.status === 401) { alert('Session is expired. Login again'); window.location.href = '../Admin/Signout.php'; } }); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |