Angular JS + CodeIgniter:在$ http ajax调用期间无法读取会话数据

时间:2014-10-12 09:30:32

标签: php ajax angularjs codeigniter

我正在尝试使用codeigniter会话在ajax调用之间存储状态。 在我使用

设置会话的其中一个网址中
$this->session->set_userdata("user", "harry");

但是当我试图从另一个网址访问“user”值时,我得到了错误

$this->session->userdata("user");

返回false。

我在这里做错了什么?我知道会话是在第一个URL中设置的,因为我可以在此之后立即回显该值。

1 个答案:

答案 0 :(得分:0)

  

会话通常会在每个页面加载时全局运行,因此   必须在控制器中初始化会话类   构造函数,或者它可以由系统自动加载

如果您没有自动加载会话库,请在其他控制器将继承的自定义控制器中初始化它,例如MY_Controller。您需要在每个Controllers __construct()中加载Session库。

class MY_Controller extends CI_Controller
{
   public $currentUser = NULL;

   public function __construct()
   {
       if(is_null($this->currentUser))
           $this->_checkUserHasLoggedIn();
   }

   protected function _checkUserHasLoggedIn()
   {
       // $this->session->set_userdata(array('uid'=>'0'))
       // This would only be set if a user is logged In
       // via a Authentication library

       if($this->session->userdata('uid') && $this->session->userdata('uid') !== 0)
       {
            $this->currentUser = new StdClass();
            $this->currentUser->ID = $this->session->userdata('uid');
            $this->currentUser->Group = $this->session->userdata('group');
            $this->currentUser->Name= $this->session->userdata('name');
       }

       return;

   }
}