在每次ajax调用中重新创建php会话


php session recreated in each ajax call

我正在尝试用JqueryMobile编写一个移动web应用程序,移动应用程序将是我的客户端,我还有一个php服务,可以管理登录会话,但php在每次ajax调用中都会创建一个新的会话,我在会话文件路径中看到生成的会话文件,我需要恢复php会话。

php文件如下所示:

header("Content-type: text/html; charset=utf-8");
header("Access-Control-Allow-Origin: *");
require 'connect_to_db.php';
// Starting the session
session_name('MySessionName');
// Making the cookie live for 2 weeks
session_set_cookie_params(2*7*24*60*60);
session_start();
...
// checking if loged in ...
?>

和ajax请求:

$.ajax({
    url: baseUrl + "login.php",
    crossDomain: true,
    type: "POST",
    data:{
        command: "Login",
        username: $("#username").val(),
        password: $("#password").val()
    },
    dataType: "json",
    success: function(response)
    {
        $.mobile.changePage("#DataList");
    },
});

我查看了stackoverflow的许多页面,但没有成功。我正在firefox和xampp中测试我的应用程序。

使用浏览器的开发工具检查请求的请求/响应标头。响应标头应该包含以下内容:

Set-Cookie: MySessionName=abcdef12345; expires=Wed, 21-May-2014 10:46:20 GMT; path=/; HttpOnly

在第一个请求之后,下一个请求需要发回cookie。

Cookie: MySessionName=abcdef12345

浏览器可能不接受cookie(lifetime,3party,p3p policy,…)。如果是这样,并且它不发回会话id,PHP将无法识别它,并将创建一个新的cookie。