javascript – 如何停止AJAX调用以保持PHP会话存活

我使用CakePHP在我的网站上有一个身份验证系统.它使用PHP Sessions进行此操作.

我所拥有的是一个AJAX调用(在每分钟运行的setInterval内)到一个函数,它检查用户是否仍然登录.如果它返回false,那么Javascript将获取当前URL并尝试重定向它们,将它们重定向到登录页面.理论上这是有效的,因为它主动要求用户重新登录而不是举行陈旧的会话,只要他们点击一下就会要求他们登录.我的问题是我的AJAX调用使会话保持活跃状态​​.所以永远不要退出(我们不想要)

我可以在CakePHP中使用任何其他方法来阻止这种情况发生吗?

解决方法:

在检查会话的有效性时,将& ajax =(任何)添加到查询字符串.

然后,更改您的PHP会话代码:

session_start();
if(!isset($_GET["ajax"])) $_SESSION["lastactivity"] = time();
if(now() - $_SESSION["lastactivity"] > 3600){ //3600 seconds
    header("Location: login.php?url="+urlencode(str_replace("&ajax=", "", $_SERVER["REQUEST_URI"])));
    //Example:
    // Location: login.php?url=/sensible/secret.php?mode=show&hide=nothing
    exit;
}

相关文章

$.AJAX()方法中的PROCESSDATA参数 在使用jQuery的$.ajax()方...
form表单提交的几种方式 表单提交方式一:直接利用form表单提...
文章浏览阅读1.3k次。AJAX的无刷新机制使得在注册系统中对于...
文章浏览阅读1.2k次。 本文将解释如何使用AJAX和JSON分析器在...
文章浏览阅读2.2k次。/************************** 创建XML...
文章浏览阅读3.7k次。在ajax应用中,通常一个页面要同时发送...