我正在尝试使用JqueryMobile编写移动网络应用程序,移动设备将是我的客户端,我还有一个将管理登录会话的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中测试我的应用程序。
答案 0 :(得分:0)
使用浏览器的开发人员工具检查请求的请求/响应标头。响应标头应包含以下内容:
Set-Cookie: MySessionName=abcdef12345; expires=Wed, 21-May-2014 10:46:20 GMT; path=/; HttpOnly
第一次请求后,下一个请求需要重新发送cookie。
Cookie: MySessionName=abcdef12345
浏览器可能不接受cookie(生命周期,3方,p3p政策......)。如果是这种情况并且它没有发回会话ID,那么PHP无法识别它并将创建一个新的。