jquery.post不会创建会话

时间:2012-12-20 18:39:39

标签: php ajax session jquery

我有一个奇怪的问题。我正在使用jquery $.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

http://textuploader.com/?p=6&id=S7zDD

问题:

如果我在我的电脑上运行代码(WAMP)它运行正常, 但是如果我将它上传到我的服务器(justhost)那么它就不会保留会话 如果我在创建会话时提醒会话,它就在那里,但是当我尝试获取会话时 后来,它消失了, 我认为这与服务器认为浏览器已关闭这一事实有关,所以它会破坏会话? 谢谢:))

2 个答案:

答案 0 :(得分:2)

您正在开始没有会话ID的会话。为此,您的PHP必须配置为使用transparent session id,默认情况下已停用。因此,您必须在具有AJAX调用的脚本中启动会话,并在POST请求中提交session_id(),并在PHP中启动会话,如下所示:

if (!isset($_POST['SID'])) {
    die('{}');
}
session_start($_POST['SID']);

另外,我会遗漏您在$.post中呼叫的网址的主机部分,以避免跨域ajax呼叫问题(这也很可能无法解决您的问题)。它只能在同一台服务器上运行,因此您可以像这样编写ajax调用:

$.post("/msws/", //...

答案 1 :(得分:0)

检查您是否有多个会话cookie。

我和codeigniter的情况相同,我发现每个新页面都会创建自己的会话