调用JQuery ajax每隔一段时间不重定向页面


call JQuery ajax at intervals doesn't redirect page

我有一个php脚本,检查会话值是否与db值匹配,如果不匹配,则用户注销并进入主页。目前这工作很好,当脚本是通过打开每个页面触发(它被添加为一个包含),但我试图用ajax调用jQuery setInterval函数

jQuery

setInterval(function() {
    $.ajax({
        type: "POST",
        url:"includes/multi_check.php"
    }); 
}, 5000); //5 seconds
php

$id = $_SESSION['user_id'];
$sql = "SELECT * FROM user WHERE userID = '$id'";
$result = mysqli_query($mysqli,$sql) or die(mysqli_error($mysqli));
$row = mysqli_fetch_array($result);
$db_token = $row['session_token'];
$taken = $row['taken_over'];
if($_SESSION['session'] != $db_token){
    $_SESSION['taken_over_by'] = $taken;
    header("location:http://www.x-rayqa.co.uk/index.php");
}

在控制台中监视调用时,调用正在工作,如果我在if参数中回显一个值,当条件为真时显示正确的值,但我无法使页面重定向。它完全忽略头部重定向。

另外,当使用手动触发方法重定向用户时,随着jQuery函数的运行,会话不会传递到主页,只要我注释掉jQuery方法,手动方法就会像预期的那样工作

AJAX在后台执行,但是在后台发生的事情并不影响实际的应用程序。如果希望影响客户机,则需要ajax向客户机发送数据,然后让客户机的浏览器做出适当的反应。比如:

setInterval(function() {
    $.ajax({
        type: "POST",
        url:"includes/multi_check.php",
        success:function(d){
            if(d=="0"){
                window.location="http://www.x-rayqa.co.uk/index.php";
            }
        }
    }); 
}, 5000); //5 seconds

然后在PHP文件中这样写:

if($_SESSION['session'] != $db_token){
    $_SESSION['taken_over_by'] = $taken;
    exit("0");
}
exit("1");

所以基本上所有这些都将通过ajax将数字10发送回用户,如果用户获得0,他们将被重定向到主页。这可能工作也可能不工作,但这是您需要遵循的想法,以使AJAX正常工作。