我正在使用ajax将php生成的内容加载到某些菜单点击的主div中。
我想要做的是拥有某种重载功能 - 如果某些超时过期我希望用户重新进行身份验证,我会在内容加载到div之前在菜单上单击检查。
如果我用php做的话 标题( “位置:登录”);
我想它想要在加载div中重定向,但我希望整个页面重定向...
答案 0 :(得分:1)
实际上,重定向XmlHttpRequest没有多大意义。你基本上有几个选择。
你让你的AJAX调用返回一些东西,使你的javascript理解你需要直接(在这种情况下,用javascript重定向)。
在尝试加载div中的内容以检查用户是否需要进行身份验证之前,您先进行AJAX调用。
您保留变量/ cookie以检查用户的会话是否已过期。在每次请求之前,您都会检查是否是这种情况。如果是,则让用户进行身份验证。
答案 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