0

我正在使用 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();



}
4

1 回答 1

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

于 2011-09-24T19:30:40.757 回答