重定向父页面加载标签
所以我有一个PHP函数用于重定向重定向父页面加载标签
public function redirect($url, $permanent=false, $statusCode=303) {
if(!headers_sent()) {
header('location: '.$url, $permanent, $statusCode);
} else {
echo "<script>location.href='$url'</script>";
}
exit(0);
}
它的完成我想知道,到目前为止,但让我们说,我加载通过AJAX一个选项卡,它要求用户要因此理想情况下,当选项卡加载并检测到用户未登录时,将其重定向到索引页面。然而,相反,重定向页面(在我的情况下为http://localhost/something/index.php)只是加载在标签内部,这是有道理的,但显然不是我想要发生的:)
但是,有没有一个PHP解决方案来做到这一点?或者,如果用户没有登录,我应该在根级别从加载的AJAX选项卡调用JavaScript重定向功能?
编辑:对不起。为了澄清我的意思是标签,它只是HTML通过AJAX
加载到DIV标签
你的问题不是关于你所说的“标签”是什么完全清楚
也许这会为你工作使用
top.location.href='$url'
非常感谢。起初,这似乎并没有为我工作,因为它似乎工作更像this.top.location.href ='$ url' ,但是当我键入window.top.location.href ='$ url'它的工作精细!谢谢 – 2010-09-15 21:10:36
你可以尝试
PHP函数
public function redirect($url, $permanent=false, $statusCode=303) {
if($_SERVER['HTTP_X_REQUESTED_WITH'] === "XMLHttpRequest"){
die("AjaxRequest");
}
else{
if(!headers_sent()) {
header('location: '.$url, $permanent, $statusCode);
} else {
echo "<script>location.href='$url'</script>";
}
exit(0);
}
}
JAV ascript功能
function ajaxresponse()
{
var response = //your ajax request response
if(response == 'AjaxRequest')
{
location.reload();
}
}
释: 在PHP首先检查是否是AJAX请求。 所以为了重定向,发送来自php的响应作为ajax会话,这样你就可以在javascript中查看这个响应,而不会发生重定向。
在javascript中检测到此响应后,您可以将JavaScript函数重定向到索引页面。
希望这会有所帮助
这似乎是我的特定设置的方式。今晚我回家时我会检查一下。谢谢, – 2010-09-14 13:48:48
我最终得到了上面的例子工作,我最终通过更换'die(“AjaxRequest”);''与'echo“来混合你的答案”; '因为有时当一个“标签”通过AJAX加载并且header()尚未设置时,我仍然希望它在顶层重定向。再次感谢! – 2010-09-15 21:14:33
我希望我随意的喋喋不休。 :) – 2010-09-15 21:14:57
您是否使用iframe作为标签? – sheeks06 2010-09-14 04:25:27