我正在使用ajax将php生成的内容加载到某些菜单单击的主div上。从ajax加载的子页面重新加载页面
我想要做的是具有某种重新加载功能 - 如果一些超时过期我希望用户重新认证,我在菜单上单击检查此内容加载到div之前。
如果我使用php的 标题(“location:login”);
我想它要加载DIV中重定向,但我想整个页面重定向...
我正在使用ajax将php生成的内容加载到某些菜单单击的主div上。从ajax加载的子页面重新加载页面
我想要做的是具有某种重新加载功能 - 如果一些超时过期我希望用户重新认证,我在菜单上单击检查此内容加载到div之前。
如果我使用php的 标题(“location:login”);
我想它要加载DIV中重定向,但我想整个页面重定向...
你能做的最好的就是这样
有些事情在你的文件的顶部
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只是添加如果检查到AJAX
Allso这个代码已经建成,所以你可以将它添加到任何文件,即使你没有使PHP文件,所以它只是顶部和底部的编辑,请确保那里的标签虽然
这符合 user228395点1
事实上,重定向一个XMLHttpRequest没有太大的意义。基本上有几个选项。
你让你的AJAX调用返回的东西,让你的JavaScript明白,你需要直接(在这种情况下,重定向用JavaScript)。
在尝试加载div中的内容以检查用户是否需要进行身份验证之前,您可以执行AJAX调用。
您保留一个变量/ cookie来检查用户的会话是否已过期。在每次请求之前,检查是否属于这种情况。如果是这样,你让用户进行身份验证。
祝你好运!
您好,感谢双方,都会尝试一下,不知道哪种解决方案呢。我忘了说,我正在使用jQuery的Ajax,我想我可以用jquery post的成功获得它,并将它匹配到“{Session_invalid}”响应.... – myha 2010-11-18 12:22:32