我在使用ajax发布请求的服务器端检索会话中遇到问题。这是我的示例代码:
JavaScript:
$(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;
});
});
CodeIngiter(PHP)方面:
function stuff()
{
$post_stuff = $this->input->post('my_stuff'); // WORKS PERFECTLY
$user_id = $this->session->userdata('user_id'); // RETURNS NULL
}
在注释返回NULL的地方,它应该返回用户会话数据,因为它确实存在。问题是什么?方法发布没有Cookie或什么?谢谢你的帮助!
更新:
为了澄清起见,我使用$ this-> session-> set_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旁边是相应的输出:
http://localhost/app/user/login“登录完成”
http://localhost/app/user/status“已登录”
http://127.0.0.1/app/user/status“未登录”
因此,即使我要访问同一台Web服务器,我在localhost上访问该应用程序时所拥有的会话也不会延续到127.0.0.1。
您的AJAX脚本中的URL域名可能与您要测试的URL的域名不同吗?
jQuery Ajax PHP重定向到另一个页面 - phpJavaScript文件:$.ajax({ type: "POST", url: "ajax.php", data: dataString, success: function(r) { $("#div").html(r); } }); 我想在成功的情况下将页面重定向到new.php,所以在我使用a…
jQuery AJAX fadeIn内容 - phpThis question already has answers here: Closed 7 years ago. Possible Duplicate: Making my ajax updated div fade in我希望将AJAX调用中的内容发送到页面上的fadeIn,但是当我使用此代码$('#sub_container')…
jQuery Ajax问题 - php在我的post.php中,我使用$ .ajax函数从其他文件加载一些html数据,将其称为form.html。我的问题是当添加到post.php的DOM中时,form.html是否可以访问post.php的POST / GET数据? 参考方案 为什么不使用$ .ajax发布到php文件,该文件返回html数据。这样,您可以在html中填写发布的数据。
有没有一种方法可以使ajax请求始终按顺序进行? - php我目前正在做的是使用jQuery在每个按键上执行ajax请求。因此,如果我的用户键入d-o-n-k-e-y,它将为每个字母发送一个请求。但是,由于它们采用不同的路径到达网络上的服务器,因此如果输入d-o-n-k-e-y的速度太快,它们就不会总是按顺序到达。他们可能会以D-n-o-k-y-e的身份到达,并做出相应的反应。有没有一种好的方法来确保所有请求都按顺序…
jQuery Ajax和php类 - php我正在尝试学习如何在php中使用oop。我对jQuery也很陌生。是否可以向php类方法发出Ajax请求?我只将Ajax请求发送到专门用于此目的的文件,并且返回我需要的数据。 参考方案 简短答案:不可以。长答案:Ajax只是一个使用JavaScript从浏览器发出HTTP请求而无需离开页面的术语。您唯一可以“呼叫”的是URL。您可以编写PHP以根据URL来执…