我在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标题,并且我没有收到关于原点的错误,所以我不认为这是问题。
答案 0 :(得分:0)
除非您在设置Cookie时使用secure
标记,否则您的Cookie应与http同时发送为https。
在这两种情况下,您需要仔细检查您的域名是否完全相同。例如,如果您在设置Cookie时没有使用http://www.yourdomain/
(使用www.
),并且在尝试阅读Cookie时检查https://yourdomain/
(不使用www.
)。