我有一個頁面上發生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);
}