我使用自己的框架,在localhost中一切正常,但不在服务器上。
我已登录,因此我已成为会话ID。
在一个ajax请求中,php脚本不会保持我的会话,如果我返回会话,会话是空的,但我在我身边,我保持会话。
如果服务器认为ajax请求是新用户,那就好了。
我不知道在哪里看,我不能在这里发布所有框架代码...... 昨天我已经有了这个问题(在工作中),然后在家里,我重新测试,一切都很好......
我不明白......
$(document).on('click', '.edit', function(){
$.ajax({
type: "POST",
url: ROOT+"list",
data: {id:id},
headers: {
Accept : "application/json; charset=utf-8"
},
cache: false,
success: function(data){
console.log(data.sess.ROLE);
if(data.status == "error"){
//error
}else{
//ok
}
}
});
});
控制器:
public function editAction(){
//if(!$this->ROLE('tokayn')){ $this->redirectUrl('thread_index'); }
if(Request::POST()){
if(is_int($_POST['id'])){
$user = $this->batiments->findById($_POST['id']);
if($user->id_proprio == $_SESSION['id']){
$data = array('status'=>'ok', 'message'=>$user);
Request::renderJson($data);
}else{
Request::renderJson(array('sess'=>$_SESSION));
//$data = array('status'=>'error', 'message'=>'error');
//Request::renderJson($data);
}
}else{
$data = array('status'=>'error', 'message'=>'error');
Request::renderJson($data);
}
}else{
//$this->redirectUrl('thread_index');
}
}
如果用户未被记录,则会话角色是“访问者”#39;但是如果他已经登录,会话角色就会被连接起来。
我在ajax表格之前有一个回音并且已经连接了#39;。 然后,在提交ajax表单时,ajax请求返回' visitor'但是,如果我刷新,我会保持联系'回声...
答案 0 :(得分:1)
我遇到了这个问题,问题是我正在使用
http://server:3344/somecontroller
当我从ajax请求时
{{1}}
并且会话未在https和http之间共享,因此请仔细检查这是否适用于您。