这有点奇怪。好的,我正在使用一个会话来了解用户何时登录。当创建用户登录会话时。
我遇到的问题是会话在某些页面上不起作用。当我在索引页面上执行var_dump($_SESSION['u_up']);时,它会显示会话:array(1) { ["u_up"]=> string(7) "example" },但是当我对另一个脚本进行Ajax调用并执行相同的var_dump($_SESSION['u_up']);时,它会返回一个空数组:array(0){}。
有人知道为什么会这样吗?我在两个文件的顶部都有session_start(),但是我的第二个脚本在我的会话中不起作用。任何帮助都是非常感谢的!
这是我的简单Ajax脚本:
//Update to not view tutorial
$.ajax({
type: "POST",
url: 'http://192.168.1.75/php/script.php',
success: function(data){
console.log(data);
}
});发布于 2017-06-03 01:02:19
好的,所以我不得不将Ajax请求中的url更改为localhost。结果看起来是这样的:
//Update to not view tutorial
$.ajax({
type: "POST",
url: 'http://localhost/php/script.php',
success: function(data){
console.log(data);
}
});不知道为什么我必须指定localhost,而不是能够指定我的计算机的ip。
发布于 2017-06-03 01:03:01
您正在执行跨域请求,192.168.1.75和localhost不被认为是相同的域,也不共享cookie。
出于安全考虑,跨域请求不包括cookie。如果不发送phpsessid cookie,您将无法检索旧的php会话,这将使您的会话为空。
除此之外,我强烈建议你在未来使用相对路径来避免这样的问题。
$.ajax({
type: "POST",
url: '/php/script.php',
success: function(data){
console.log(data);
}
});https://stackoverflow.com/questions/44339192
复制相似问题