Php jquery.post不';不要创建会话
我有一个奇怪的问题。我正在使用jqueryPhp jquery.post不';不要创建会话,php,ajax,session,jquery,Php,Ajax,Session,Jquery,我有一个奇怪的问题。我正在使用jquery$.post()从PHP脚本发送/接收变量 JavaScript: $("#r_submit").click(function() { $.post("http://" + server + "/msws/", { action: "register", sub_action: "register_validate" }, function(json) { jso
$.post()
从PHP
脚本发送/接收变量
JavaScript:
$("#r_submit").click(function()
{
$.post("http://" + server + "/msws/",
{
action: "register",
sub_action: "register_validate"
},
function(json)
{
json = $.parseJSON(json);
alert(json.cell_is_good);
});
});
PHP:
问题:
$("#r_submit").click(function()
{
$.post("http://" + server + "/msws/",
{
action: "register",
sub_action: "register_validate"
},
function(json)
{
json = $.parseJSON(json);
alert(json.cell_is_good);
});
});
如果我在我的电脑上运行代码(WAMP),它工作正常,
但是如果我把它上传到我的服务器(justhost),那么它就不能保持会话
如果我在创建会话时提醒它,它就在那里,但是当我尝试获取会话时
后来就不见了,,
我认为这与服务器认为浏览器已关闭这一事实有关,因此它破坏了会话?
谢谢:)检查您是否有多个会话cookie
我对codeigniter也有同样的情况,我发现每个新页面都会创建自己的会话您在启动会话时没有会话id。要使其正常工作,您的PHP必须配置为使用,默认情况下是禁用的。因此,您必须在具有AJAX调用的脚本中启动会话,并在POST请求中提交
session\u id()
,然后在PHP中启动会话,如下所示:
if (!isset($_POST['SID'])) {
die('{}');
}
session_start($_POST['SID']);
$.post("/msws/", //...
另外,我将省略您在$.post
中调用的url的主机部分,以避免跨域ajax调用问题(这很可能不会解决您的问题)。它只在同一台服务器上工作,因此您可以这样编写ajax调用:
if (!isset($_POST['SID'])) {
die('{}');
}
session_start($_POST['SID']);
$.post("/msws/", //...
我从chrome上知道这个问题。帖子是在同一台服务器上发布的吗?JavaScript代码中的
server
是否与PHP页面的域相同?竞态条件?你能确认cookie是在firebug中设置的吗?我不认为这是问题所在。cookie随ajax请求一起发送@雷基尔问了一个很好的问题,但这个问题还没有得到回答,这将告诉我们情况是否如此。Chrome也有开发工具,按F12键。javascript是seprate它是一个移动应用程序,它不在服务器上客户端JS还会在哪里。。。?更有理由检查请求。但是如果你说它在本地工作的话,仍然不确定它是否适合。好的-你说你在标题中看到了会话。那么这个答案可能不是你的解决方案。也许可以浏览路径范围注释(跨域)。看这篇文章:是的,它在我的本地机器上也工作得很好。你在子域上工作吗?你能发送你的url吗?对我来说仍然听起来像经典的比赛条件。dj_男孩,那篇文章有意义吗?