2011-09-23 99 views
0

我正在使用Zend 1.11框架與教條。我發送下面的ajax請求填充下拉列表&等......但一旦會話過期我重定向到控制器的每一個行動的登錄頁面。因此,如果會話過期,我會收到整個html頁面作爲響應。如何在JavaScript中做到這一點(我怎樣才能找出整個HTML響應或不)。我正在使用Zend_Auth進行會話管理。重定向到會話過期的新頁面,在Zend_Auth中

function loadzone(value) 

{ 

var xmlhttp; 

if (window.XMLHttpRequest) 
    { 
    xmlhttp=new XMLHttpRequest(); 
    } 
else 
    { 
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
    } 
    xmlhttp.onreadystatechange=function() 
    { 
    if (xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 

    document.getElementById("district_span").innerHTML=xmlhttp.responseText; 

    } 
    } 
xmlhttp.open("GET","/main/zonechange?zc="+value,true); 
xmlhttp.send(); 



} 
+0

請給你的問題一個有意義的標題。你只是把標籤放入你的標題中,這沒有幫助。 – markus

+1

@markus是那個標題好嗎? – Darshan

+0

聽起來好多了! – markus

回答

2

嗯,據我瞭解: 用戶登錄並打開某種形式。您可以通過AJAX-Checkups查看用戶是否仍然登錄。如果用戶空閒時間過長,會話將過期。 在這種情況下,你想重定向用戶?

如果是我認爲你可以給用戶一個不好的回調。這是可以做到這樣的:

$this->_response->setHttpResponseCode(401); //401 = unauthorized 

如果你這樣做,你可以擴展你的JS功能爲捕捉代碼

if (xmlhttp.readyState==4 && xmlhttp.status==401) { 
    //do the redirect 
} 

這是你要求還是我誤解了你題? :) 有關響應代碼的其他信息可以在這裏找到:http://de.wikipedia.org/wiki/HTTP-Statuscode