我正在使用jQuery ajax调用来更新数据。我在firefox中登录了两个不同的标签。
我从一个标签中退出。第二个标签尚未刷新。
当我尝试通过ajax更新数据时,调用正确执行了调用。
如何在执行ajax调用时注销用户并显示错误?
答案 0 :(得分:3)
在服务器端处理AJAX调用之前,您应该检查用户是否已登录。
如果未找到会话,则在AJAX调用中返回特殊错误; JSON的示例:
{"status":"error","error":"loggedout"}
如果应用程序收到此信息,则向用户显示“会话已超时”消息,并将其重定向到登录(或其他适当的)页面。
答案 1 :(得分:0)
如果第一个选项卡的用户明确注销(而不是关闭选项卡),您可以检查在处理PHP的Ajax请求时是否仍然记录。例如:
function login () {
$_SESSION['isLogged'] = true;
}
function logout () {
$_SESSION['isLogged'] = false;
}
function isLogged () {
return (isset ($_SESSION['isLogged']) ? $_SESSION['isLogged'] : false);
}
并在您的Ajax处理程序中:
if (isLogged ()) {
... some stuff here
}
else {
... return error message here and ask user to log in
}