AJAX调用超时的PHP会话

时间:2015-08-18 05:47:15

标签: javascript php jquery ajax session

我有一个AJAX表单,可以对数据进行一些身份验证。如果会话超时,我想重定向到登录页面。我怎样才能做到这一点? 这是我简化的服务器端代码:

function doExecute(Request $request){
    if (isset($_SESSION["user_id"])){
        $user = New User($_SESSION["user_id"]);
        $returnData["cashBack"] = $user->getAvailCashBack();
        echo json_encode($returnData);

    }
} 

这是我的jquery ajax调用代码:

$.post('index.php?cmd=hx_cash',function(data){
        var cashBack= data["cashBack"];
        //somecode;
}

如果会话超时,我需要添加到服务器端或浏览器端代码以实现重定向到登录页面?

1 个答案:

答案 0 :(得分:1)

function doExecute(Request $request){
    if (isset($_SESSION["user_id"])){
        $user = New User($_SESSION["user_id"]);
        $returnData["cashBack"] = $user->getAvailCashBack();
        echo json_encode($returnData);

    }else echo "{\"logout\":\"<login url>\"}";
} 
$.post('index.php?cmd=hx_cash',function(data){
   if(data.logout){
      location.href = data.logout;
      return;
   }     
   var cashBack= data["cashBack"];
    //somecode;
}

在您的PHP代码中,只有在没有设置会话时才发送您希望用户所在的URL,并且在每次调用之前,如果在处理您的ajax业务逻辑之前没有设置会话,您可以重定向到登录页面