如果AJAX url重定向到登录页面,则重定向到登录页面

Vis*_*a S 3 php ajax redirect

<div>我使用的页面中有一个ajax加载的内容.项目中的所有页面都在登录时受到保护.根据逻辑,如果用户将窗口保持空闲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();
}
Run Code Online (Sandbox Code Playgroud)

Dev*_*esh 8

这是常见问题,因为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';
                   }
          });
Run Code Online (Sandbox Code Playgroud)