我有一个页面上发生jQuery Ajax请求。在PHP方面,我正在检查会话是否处于活动状态并执行某些操作。如果会话不活动,我想将用户重定向到php中的另一页(标题重定向)。我该怎么做。PHP- Ajax和重定向
我知道如何去实现它在JavaScript(即如果session_fail然后更改了window.location但有东西,我可以在PHP做/ CakePHP的
我有一个页面上发生jQuery Ajax请求。在PHP方面,我正在检查会话是否处于活动状态并执行某些操作。如果会话不活动,我想将用户重定向到php中的另一页(标题重定向)。我该怎么做。PHP- Ajax和重定向
我知道如何去实现它在JavaScript(即如果session_fail然后更改了window.location但有东西,我可以在PHP做/ CakePHP的
如果我明白你想要发生什么,那么这就是我如何实现它。它在原型,而不是jQuery的,但它不应该带你长的翻译:
header('Location: http://example.com/login.php', true, 401);
exit;
重定向只说:“您所请求的数据可以在这里找到” 。
HTTP提供没有办法说“即使你请求的资源去一个页面内,你应该要离开这个页面,去别的地方”。
您需要返回你的JavaScript能够理解的响应意思是“转到不同的位置”并在您自己的代码中处理它。
这是你想要的东西:
new Ajax.Request('process.php', {
on401: function(response) {
var redirect = response.getHeader('Location');
document.location = redirect;
}
});
在你的PHP,输出如果会话处于非活动状态下在你的PHP如果这是常规的请求,并没有AJAX
if (isset($_SESSION)) doSomething();
else header("Location: otherUrl");
因为这是一个Ajax调用,你是不是把控制权交给PHP,但只是想获得一个响应(可能)填补了汉邦你的页面的cular部分。你没有提到你使用的jQuery ajax函数,但它很重要。我会想象你正在使用$ .get()或$(element).load()?
不知道详情,这是我最好的建议。
Ajax调用:$.get(url, callbackFunc);
PHP:
if(isset($_SESSION)) echoSomething() else echo("redirect");
callbackFunc:
function(data)
{ if (data == "redirect") window.location = otherUrl;
else
$("#desiredElement").html(data);
}