Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 在没有会话时防止Ajax调用&;codeigniter中的网络发现_Jquery_Ajax_Codeigniter - Fatal编程技术网

Jquery 在没有会话时防止Ajax调用&;codeigniter中的网络发现

Jquery 在没有会话时防止Ajax调用&;codeigniter中的网络发现,jquery,ajax,codeigniter,Jquery,Ajax,Codeigniter,在我的项目中,我面临两个问题。请帮助我解决这些问题 我正在使用javascript中的.load()函数加载另一个页面 使用Ajax。它工作得很好。但是如果我在其他地方开始我的项目 tab并注销,然后返回此处,尝试调用ajax 显示使用.load()加载页面的登录页面 函数。我如何解决它 当网络断开连接时,如何停止ajax调用 如何解决这两个问题???您试图实现的目标有点复杂,因为您希望浏览器(客户端)记录服务器上是否存在当前用户的活动会话 问题在于,用户的会话记录保存在服务器上,并且您希望客户

在我的项目中,我面临两个问题。请帮助我解决这些问题

  • 我正在使用javascript中的.load()函数加载另一个页面 使用Ajax。它工作得很好。但是如果我在其他地方开始我的项目 tab并注销,然后返回此处,尝试调用ajax 显示使用.load()加载页面的登录页面 函数。我如何解决它

  • 当网络断开连接时,如何停止ajax调用


  • 如何解决这两个问题???

    您试图实现的目标有点复杂,因为您希望浏览器(客户端)记录服务器上是否存在当前用户的活动会话

    问题在于,用户的会话记录保存在服务器上,并且您希望客户端知道会话状态。您需要编写一些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();
       }
    });
    }
    
    在服务器端,您将有一些名为somefunction的方法来检查会话

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

    您试图实现的目标有点复杂,因为您希望您的浏览器(客户端)记录服务器上是否存在当前用户的活动会话

    问题在于,用户的会话记录保存在服务器上,并且您希望客户端知道会话状态。您需要编写一些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();
       }
    });
    }
    
    在服务器端,您将有一些名为somefunction的方法来检查会话

    function someFunctionToCheckSession(){
      // CHeck user's active session here
      $data['isSessionActive'] = 0;
      if(isset($_SESSION['user_name'])){
          $data['isSessionActive'] = 1;
      }
      echo json_encode($data); 
    
    }
    
    我希望这能有所帮助

    在你的函数构造中,包括这个

    如果(!$this->session->userdata('somevalue'){redirect('somevalue');}

    我希望这能有所帮助

    在你的函数构造中,包括这个


    如果(!$this->session->userdata('somevalue'){redirect('somevalue');}

    您尝试了什么???在此处添加代码您尝试了什么???在此处添加代码实际上,如果没有会话,它将不会调用该函数,因此它会向我抛出一个错误,如意外令牌。您可以详细解释吗?好的,我在两个选项卡中打开了我的项目,如果我注销其中一个选项卡,会话将被销毁。因此,如果没有会话,会话将被销毁GET请求将失败。您必须检查会话变量是否存在。我已进行了更改。我知道。但如果没有会话,我们无法执行服务器请求,对吗?您所说的一切都是正确的,即,如果我们从服务器会话中获得1,或者如果我们获得0会话缺席。但我想告诉您的是,我们如何获得0如果没有会话,这意味着我们无法执行服务器请求。实际上,如果没有会话,它不会调用该函数,因此它会向我抛出一个错误,如意外令牌。你能详细解释一下吗?好的,我在两个选项卡中打开了我的项目,如果我在其中一个选项卡中注销,会话将被销毁。因此,如果没有会话,GET reque将被销毁st将失败。您必须检查会话变量是否存在。我已进行了更改。我知道。但如果没有会话,我们无法执行服务器请求,对吗?您所说的一切都是正确的,即,如果我们从服务器会话中得到1,或者如果我们得到0会话缺席。但我想告诉的是,我们如何从服务器中得到0r如果没有会话,则意味着无法执行服务器请求