Php 代码点火器+;ajax(jQuery)会话问题
我在服务器端使用ajax post请求检索会话时遇到问题。以下是我的示例代码: JavaScript:Php 代码点火器+;ajax(jQuery)会话问题,php,jquery,ajax,session,codeigniter,Php,Jquery,Ajax,Session,Codeigniter,我在服务器端使用ajax post请求检索会话时遇到问题。以下是我的示例代码: JavaScript: $(function() { $('.jid_hidden_data').submit(function() { var serialized = $(this).serialize(); var sUrl = "http://localhost/stuff"; $.ajax({ url: sUrl,
$(function() {
$('.jid_hidden_data').submit(function() {
var serialized = $(this).serialize();
var sUrl = "http://localhost/stuff";
$.ajax({
url: sUrl,
type: "POST",
data: serialized,
success: function(data) {
alert(data);
}
})
return false;
});
});
编码器(PHP)端:
如果commented返回NULL,它应该返回用户会话数据,因为它确实存在。有什么问题?Method post没有收到cookies还是什么?谢谢你的帮助
更新:
为了澄清,我用$this->session->set\u userdata($data)设置了会话。
在没有js/ajax的情况下发布时,我没有问题。我的意思是,使用纯表单提交可以很好地工作。当使用不同的域名访问CI应用程序时,我遇到了类似的问题。尽管这些域名指向同一个web服务器,但我有两个单独的会话
例如,考虑这个控制器:
class User extends Controller
{
function User()
{
parent::Controller();
$this->load->library('session');
}
function login()
{
$this->session->set_userdata('login_token', true);
echo 'finished logging in';
}
function logout()
{
$this->session->unset_userdata('login_token');
echo 'finished logging out';
}
function status()
{
if ($this->session->userdata('login_token'))
{
echo 'logged in';
}
else
{
echo 'not logged in';
}
}
}
我按顺序访问以下URL。每个URL旁边都有相应的输出:
“已完成登录”
“已登录”
“未登录”
因此,我在localhost上访问应用程序时的会话不会延续到127.0.0.1,即使我使用的是同一个web服务器
您的AJAX脚本中URL的域名是否与您正在测试的URL的域名不同?当使用不同的域名访问CI应用程序时,我遇到了类似的问题。尽管这些域名指向同一个web服务器,但我有两个单独的会话
例如,考虑这个控制器:
class User extends Controller
{
function User()
{
parent::Controller();
$this->load->library('session');
}
function login()
{
$this->session->set_userdata('login_token', true);
echo 'finished logging in';
}
function logout()
{
$this->session->unset_userdata('login_token');
echo 'finished logging out';
}
function status()
{
if ($this->session->userdata('login_token'))
{
echo 'logged in';
}
else
{
echo 'not logged in';
}
}
}
我按顺序访问以下URL。每个URL旁边都有相应的输出:
“已完成登录”
“已登录”
“未登录”
因此,我在localhost上访问应用程序时的会话不会延续到127.0.0.1,即使我使用的是同一个web服务器
您的AJAX脚本中URL的域名是否与您正在测试的URL的域名不同?您如何知道它的存在?数据是在cookie中还是在会话中?它在登录后设置为这样$this->session->set\u userdata($data)。另外,我在没有js/ajax的情况下发布它时没有问题,但是使用纯表单提交。我们可以看到您是如何向ajax请求提供数据的吗?您如何知道它的存在?数据是在cookie中还是在会话中?它在登录后设置为这样$this->session->set\u userdata($data)。另外,我在没有js/ajax的情况下发布它时没有问题,但是使用纯表单提交。我们可以看看您是如何向ajax请求提供数据的吗?是的,这是我遇到的问题。虽然在你回答之前就解决了。无论如何,非常感谢!:)我也遇到了同样的问题,在与Sessions、CSRF等进行了三天的斗争之后,我终于读到,在我的jQueryAjax请求中将“localhost”更改为127.0.0.1,问题神奇地消失了+是的,这是我遇到的一个问题。虽然在你回答之前就解决了。无论如何,非常感谢!:)我也遇到了同样的问题,在与Sessions、CSRF等进行了三天的斗争之后,我终于读到,在我的jQueryAjax请求中将“localhost”更改为127.0.0.1,问题神奇地消失了+上一个答案是100。