1

这是我的javascript..

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

我对 php 代码的 ajax 响应是

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

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

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

4

2 回答 2

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();
}

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

于 2013-09-20T12:06:09.077 回答
0

虽然我对 PHP 不是很精通,
但我假设如果您的会话已过期,那么您将获得一个重定向响应代码,如 3xx。
在这种情况下,浏览器会自动发出新请求并下载请求重定向到的页面。这对您的 ajax 请求是透明的,因此最终在成功处理程序中您将获得登录页面的 HTML。

顺便说一句,您已经写到您自己正在设置Location Header即时消息,也假设您自己在处理请求,即使在会话过期时也是如此。在这种情况下

1.您可以更改返回的状态码。
2. 使用 ajax 服务在 preodic 间隔查看会话状态。如果您发现会话已过期重定向到登录页面。

于 2013-09-20T11:48:59.537 回答