无法通过ajax请求获取会话值
这是我的ajax req
$.post(url, payload,
function(returnedData){
console.log(returnedData); //does not print session values it seems session has restarted
var jsonData = JSON.parse(returnedData);
$('#cart').empty().append(jsonData.data);
});
在console.log中输出
Array
(
[__ci_last_regenerate] => 1473660791
)
分配会话变量
public function test($id=null)
{
$_SESSION['tot']=1;
}
不使用ajax进行测试
public function addToCart($id=null) //note that this is also the control for my ajax req
{
print_r($_SESSION);
die('0');
}
public function test1()
{
print_r($_SESSION); // it prints fine
}
输出
Array ( [__ci_last_regenerate] => 1473660731 [tot] => 1 )
我自动加载了我的会话库。 CI表示,只要它存在,使用会话魔法或php访问会话变量无关紧要。
答案 0 :(得分:0)
你好,请你使用默认的codeignitor会话,请提一下你提出的ajax请求和ajax请求的php代码的网址
像
$this->session->set_userdata('tot',1);
然后像这样打印会话数组
echo "<pre">;print_r($this->session->userdata('tot'));
答案 1 :(得分:0)
您的代码应为
public function test($id=null)
{
$this->session->set_userdata('tot', 1);
//instead $_SESSION['tot']=1;
}
public function addToCart($id=null) //note that this is also the control for my ajax req
{
$session_id = $this->session->userdata('session_id');
echo $session_id;
}
public function test1()
{
//print_r($_SESSION); // it prints fine
$session_id = $this->session->userdata('session_id');
echo $session_id;
}
并确保加载会话库($ this-&gt; load-&gt; library(&#39; session&#39;);)