我正在使用带有教义的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();
}
答案 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