从ajax加载的子页面重新加载页面

时间:2010-11-18 09:06:19

标签: php ajax redirect

我正在使用ajax将php生成的内容加载到某些菜单点击的主div中。

我想要做的是拥有某种重载功能 - 如果某些超时过期我希望用户重新进行身份验证,我会在内容加载到div之前在菜单上单击检查。

如果我用php做的话  标题( “位置:登录”);

我想它想要在加载div中重定向,但我希望整个页面重定向...

2 个答案:

答案 0 :(得分:1)

实际上,重定向XmlHttpRequest没有多大意义。你基本上有几个选择。

  1. 你让你的AJAX调用返回一些东西,使你的javascript理解你需要直接(在这种情况下,用javascript重定向)。

  2. 在尝试加载div中的内容以检查用户是否需要进行身份验证之前,您先进行AJAX调用。

  3. 您保留变量/ cookie以检查用户的会话是否已过期。在每次请求之前,您都会检查是否是这种情况。如果是,则让用户进行身份验证。

  4. 祝你好运!

答案 1 :(得分:1)

你能做的最好的事情就是这样

位于文件顶部

ob_start();

将其添加到php文件的末尾

if($_SEESION['active']){
    ob_end_flush()
}else{
    ob_clean();
    echo "{Session_invalid}";
    ob_end_flush();
}

然后在你的AJAX(XMLHttpRequest)

ajax = new XMLHttpRequest();
ajax.open("GET", "/folder/yourFile.php", true);
ajax.onreadystatechange = function(){
    if(readyState == 4){
        if(ajax.responseText == "{Session_invalid}"){
            document.location = "http://your.authenticate.url/"
        }else{
            mydiv.innerHTML = ajax.responceText
        }
    }
}
ajax.send();

请注意我已根据你所说的内容构建了这个不要删除你的ajax只需添加if检查到AJAX

所有这段代码都已构建好,你可以将它添加到任何文件中,即使你没有制作php文件所以它只是顶部和底部的编辑,请确保标签中有

这匹配 user228395指向1