我正在使用 zend 1.11 框架和doctrine。我正在发送下面的 ajax 请求来填充下拉列表等...但是一旦 session 过期,我将在 Controller 的每个操作中重定向到登录页面。因此,如果 session 过期,我将得到整个 html 页面作为响应。如何在 javascript 中做到这一点(我如何找出整个 html 响应或不)。我使用 Zend_Auth 进行 session 管理。
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();
}
最佳答案
据我了解: 用户登录并打开某个表单。您执行 AJAX 检查来查看用户是否仍然登录。如果用户空闲时间太长, session 将过期。 在这种情况下您想重定向用户吗?
如果就像我认为你可以给用户一个错误的回调。这可以这样完成:
$this->_response->setHttpResponseCode(401); //401 = unauthorized
如果你这样做,你可以扩展你的 JS 功能来捕获该代码
if (xmlhttp.readyState==4 && xmlhttp.status==401) {
//do the redirect
}
这是你要问的还是我误解了你的问题? :) 有关响应代码的其他信息可以在此处找到:http://de.wikipedia.org/wiki/HTTP-Statuscode
关于javascript - 在 Zend_Auth 中, session 过期时重定向到新页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7524815/