阻止Ajax调用当没有会话时& codeigniter中的网络消失

时间:2015-09-21 05:06:36

标签: jquery ajax codeigniter

我在项目中面临两个问题。请帮我摆脱那些。

  1. 我在javascript中使用.load()函数来加载其他页面 使用Ajax。这很棒。但是,如果我在其他地方打开我的项目 选项卡和注销并返回到此处并尝试进行ajax调用 显示登录页面我使用.load()加载页面的位置 function.How我如何解决它。

  2. 如何在网络断开连接时停止ajax呼叫?

  3. 如何解决这两个问题??

2 个答案:

答案 0 :(得分:0)

您要实现的目标有点复杂,因为您希望浏览器(客户端)保留天气记录,以便服务器上存在当前用户的活动会话。

问题是用户的会话记录是在服务器上维护的,并且您希望客户端知道会话状态。您将需要编写一些java脚本,该脚本将在固定的时间间隔后继续在服务器上调用函数,以检查会话是否有效。

我会这样做:

// this will call a function to make a request to server and check if session exist's after every 10 seconds.
var t=setInterval(checkSessionExist,10000); 

function checkSessionExist(){
 $.get( "someFunctionToCheckSession", function( data ) {
   if(!data.isSessionActive){
     clearInterval(t);
     alert("Your Session has Expired. Please Login to continue !!");
     location.reload();
   }
});
}

在服务器端您将有一些名为 someFunctionToCheckSession

的方法
function someFunctionToCheckSession(){
  // CHeck user's active session here
  $data['isSessionActive'] = 0;
  if(isset($_SESSION['user_name'])){
      $data['isSessionActive'] = 1;
  }
  echo json_encode($data); 

}

答案 1 :(得分:0)

我希望这可以帮助

在你的函数中__construct包括这个。

如果($这 - >!会话而>用户数据( 'someValue中'){重定向( 'someValue中');}