如何在会话过期时从 ajax 响应自动重定向网页

How to auto redirect a webpage from ajax response if the session is expired?

本文关键字:响应 重定向 网页 ajax 会话 过期      更新时间:2023-09-26

这是我的javascript。

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

我从 PHP 代码的 Ajax 响应是

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

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

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

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

顺便说一下,你自己正在设置Location Header IM也假设你是你自己处理请求,即使在会话中也已过期。

在这种情况下

1.您可以更改返回的状态代码。
2.在 LOOK 中使用 AJAX 服务,以 Preodic 间隔检查会话状态。如果您发现该会话已过期,请重定向到登录页面。

要实现这一目标,有很多方法:

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

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