如果会话过期,如何从ajax响应中自动重定向网页?

时间:2013-09-20 11:42:39

标签: javascript ajax session

这是我的javascript ..

function rDir() {
    window.location="./index.php?status=session";
}

我的php代码的ajax响应是

<script type="text/javascript">
    rDir();
</script>

如果我在php中使用header('Location:index.php?status=session;);它可以工作..但是它会加载div中的index.php内容...

如果会话已过期,如何通过ajax加载主页重定向?

2 个答案:

答案 0 :(得分:0)

虽然我对PHP不太熟练但是我假设如果你的会话已经过期,那么你将得到一个像3xx这样的重定向响应代码。
在这种情况下,浏览器会自动发出新请求并下载请求重定向的页面。这是透明地完成你的ajax请求,所以最后在成功处理程序中你将获得登录页面的HTML。

通过你写的方式你自己设置Location Header我也假设你自己处理请求,即使在会话过期。在这种情况下

1.您可以更改返回的状态代码 2.在预定的时间间隔内查看会话状态中的ajax服务。如果您发现该会话已过期,请重定向到登录页面。

答案 1 :(得分:0)

要实现这一点,他们有很多方法:

1 - 最简单的:

Var MustBe = "script type="\text/javascript\">rDir();</script>";
if(Request.ResponseText == MustBe ){
rDir();
}

2 - 专业:

$('body').append(request.responsetext);

3 - 一个好方法:

if(Request.responsetext.indexof("rDir();") !== -1){
rDir();
}

我选择了这些方法,因为它很容易在您的代码中实现。