2011-09-23 102 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