我正在www.mysite.com/CookieTest.PHP中用PHP设置cookie,如下所示:
setcookie( "test", "value", time( ) + 259200000, "/" );
它运行良好,我可以在Chrome的设置中看到cookie。然后,我试着阅读www.mysite.com/Login.php中的cookie,如下所示:
if( isset( $_COOKIE[ "test" ] ) == false )
{
echo "error";
}
它可以很好地使用http,但不能使用https。以上总是返回false,当我尝试时
print_r( $_COOKIE );
它打印一个空数组,尽管我可以在Chrome中看到我的网站域上设置了5个其他cookie。
我在jquery中使用ajax,使用https向CookieTest.php和Login.php发出请求。我已经设置了Access Control Allow Origin标头,我没有收到关于原点的错误,所以我认为这不是问题所在。
除非您在设置cookie时使用secure
标志,否则您的cookie应同时使用http和https发送。
在这两种情况下,你需要仔细检查你的域名是否完全相同。例如,如果在设置cookie时未使用http://www.yourdomain/
(带www.
),而在尝试读取cookie时没有使用https://yourdomain/
(不带www.
),请进行检查。