Php jquery ajax未创建会话
我正在使用Codeigniter 3.1.2,并试图在我的应用程序中实现Facebook登录。当用户登录并授权我的应用程序时,我想在数据库中保存一些用户信息,然后创建会话 除创建会话外,所有工作正常,这就是用户在成功授权我的应用后未登录到我的应用的原因 点击FB登录按钮,触发以下代码Php jquery ajax未创建会话,php,jquery,ajax,facebook,codeigniter,Php,Jquery,Ajax,Facebook,Codeigniter,我正在使用Codeigniter 3.1.2,并试图在我的应用程序中实现Facebook登录。当用户登录并授权我的应用程序时,我想在数据库中保存一些用户信息,然后创建会话 除创建会话外,所有工作正常,这就是用户在成功授权我的应用后未登录到我的应用的原因 点击FB登录按钮,触发以下代码 FB.login(function (response) { if (response.status === 'connected') { var site_url = $(
FB.login(function (response) {
if (response.status === 'connected') {
var site_url = $('#site_url').val();
$.ajax({
url: site_url + 'weapons/register',
type: 'post',
data: {
email: response.email
}
});
window.location.href = '<?php echo site_url_tr('profile'); ?>';
}
}, {scope: 'public_profile,email'});
FB.登录(功能(响应){
如果(response.status===“已连接”){
var site_url=$('#site_url').val();
$.ajax({
url:site_url+“武器/注册”,
键入:“post”,
数据:{
电子邮件:response.email
}
});
window.location.href='';
}
},{scope:'public_profile,email'});
这是我的注册方法
public function register() {
$email = $this->input->post('email');
$user = array(
'email' => $email
);
$u = $this->pm->total_item('users', 'email', $email);
if ($u < 1) {//if user not exist then create
$this->db->set('reg_date', 'NOW()', FALSE);
$user_id = $this->pm->insert_data('users', $user, TRUE);
}else{
$user = $this->pm->get_row('email', $email,'users');
$user_id = $user['id'];
}
$user_data = array(
'user_id' => $user_id,
'username' => $email,
'email' => $email,
'user_type' => 'user'
);
$this->session->set_userdata($user_data);
}
公共函数寄存器(){
$email=$this->input->post('email');
$user=array(
'email'=>$email
);
$u=$this->pm->total_项目('users'、'email'、$email');
如果($u<1){//如果用户不存在,则创建
$this->db->set('reg_date','NOW()',FALSE);
$user\u id=$this->pm->insert\u data('users',$user,TRUE);
}否则{
$user=$this->pm->get_行('email',$email,'users');
$user_id=$user['id'];
}
$user\u data=数组(
'user\u id'=>$user\u id,
“用户名”=>$email,
“email”=>$email,
“用户类型”=>“用户”
);
$this->session->set_userdata($user_data);
}
$this->session->set\u userdata($user\u data)代码>所以这是我试图创建会话的尝试,但它不起作用。并且不从上面的myJS
code重定向到Profile
controller。谢谢
我已经自动加载了会话
库和驱动程序。知道我该怎么做吗
用户授权我的应用程序时创建会话(通过Codeigniter)
欢迎光临
确保包括$this->load->library('session')代码>在您的文件中或自动加载它
Ajax调用是异步的:在您有机会完成请求之前,您正在重定向
$.ajax({
//参数
}).done(函数(){
//重定向到这里
});
希望有帮助。是的,我已经自动加载了会话库和驱动程序。在done
nothing happendusly response.status中也尝试了重定向。status包含一个代码(200表示成功,404未找到..),可能来自那里。我认为您应该在客户端上的if变量之前使用console.log(response)。这是我的response
isObject{authResponse:Object,status:“connected”}
类型:“Post”
应该是方法:“Post”
我们是否能从服务器获得任何反馈,告诉我们请求是否通过?停止假设。如果你知道,那么评论/回答。你所说的都是在异步问题上什么都没做过的部分-站点url包含什么?如果其中包含使请求跨域的任何值,则除非您添加with credentials
标志,否则不会随请求发送cookie。@CBroesite\u url
此处
即http://localhost/project_name/