我正在尝试用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。