Javascript 每隔';t重定向页面

Javascript 每隔';t重定向页面,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,我有一个php脚本,它检查会话值是否与db值匹配,如果不匹配,用户将注销并转到主页。目前,当脚本通过打开每个页面(作为一个include添加)触发时,这可以正常工作,但我尝试使用jQuery setInterval函数和ajax调用它 jQuery setInterval(function() { $.ajax({ type: "POST", url:"includes/multi_check.php" }); }, 5000); //5 sec

我有一个php脚本,它检查会话值是否与db值匹配,如果不匹配,用户将注销并转到主页。目前,当脚本通过打开每个页面(作为一个include添加)触发时,这可以正常工作,但我尝试使用jQuery setInterval函数和ajax调用它

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参数中的值,当条件为true但我无法使页面重定向时,将显示正确的值。它完全忽略标题重定向


另外,由于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将数字
1
0
发送回用户,如果用户得到
0
,他们将被重定向到主页。这可能有效,也可能无效,但这是让AJAX正常工作所需遵循的理念。

能否检查AJAX调用返回的内容?可能会成功:在ajax调用中使用函数(数据){console.log(数据);}。。。确保所有内容都是从php页面返回的,只是缓存的jQuery响应?检查您的网络流量