我遇到的问题是会话不在某些页面上工作。当我在索引页面上执行$LastVerb = "http://schemas.microsoft.com/mapi/proptag/0x10810003"
$Monitor.Items | Where-Object { $_.PropertyAccessor.GetProperty($LastVerb) -gt 0 }
时,会显示会话:var_dump($_SESSION['u_up']);
但是当我对另一个脚本进行Ajax调用并执行相同的array(1) { ["u_up"]=> string(7) "example" }
时,它会返回一个空数组:{{ 1}}。
有谁知道为什么会这样?我在这两个文件上都有var_dump($_SESSION['u_up']);
,但不知怎的,我的第二个脚本无法接受我的会话。非常感谢任何帮助!
这是我简单的Ajax脚本:
array(0){}
答案 0 :(得分:2)
您正在执行跨域请求, 192.168.1.75 且 localhost 不被视为相同的域,并且不共享Cookie。
出于安全原因,跨域请求不包含cookie。如果您不发送phpsessid cookie,您将无法检索旧的php会话,这将使您的会话为空。
除此之外,我强烈建议你使用相对路径来解决未来的问题。
$.ajax({
type: "POST",
url: '/php/script.php',
success: function(data){
console.log(data);
}
});
答案 1 :(得分:0)
好的,事实证明我必须将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。