会话过期时重定向到新页面,在Zend_Auth中

时间:2011-09-23 05:49:47

标签: javascript ajax zend-framework zend-auth

我正在使用带有教义的zend 1.11框架。我发送下面的ajax请求来填充下拉列表&等......但是一旦会话到期,我就会在控制器的每个动作中重定向到登录页面。因此,如果会话过期,我将获得整个html页面作为响应。如何在javascript中做到这一点(我怎样才能找到整个HTML响应)。我正在使用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();



}

1 个答案:

答案 0 :(得分:2)

根据我的理解: 用户已登录并打开某个表单。您执行AJAX-Checkup以查看用户是否仍然登录。如果用户空闲时间过长,会话将过期。 在这种情况下,您想要重定向用户吗?

如果是,我认为你可以给用户一个糟糕的回调。这可以这样做:

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

如果您这样做,您可以扩展您的JS功能以捕获该代码

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

这是你要求的还是我误解了你的问题? :) 有关响应代码的其他信息,请访问:http://de.wikipedia.org/wiki/HTTP-Statuscode