由服务器设置的cookie不会在第一次在javascript中显示

时间:2015-06-23 18:11:19

标签: javascript php cookies

我真的不知道这笔交易是什么。我在php中设置了我的cookie:

$locale = 'en_US';
setcookie('locale', $locale);

我在Javascript中访问它:

console.log(document.cookie);
奇怪的是,这并不显示cookie。但是,如果我打开浏览器控制台并键入document.cookie,它会显示所有Cookie。

如果我刷新页面,就会显示cookie。

出于某种原因,Cookie在设置时不会被发送到浏览器。

Cookie是否存储在响应的最后?如果是,我该如何制作,以便将它们存储在开头?

1 个答案:

答案 0 :(得分:1)

下面这段代码在Chrome中适用于我,显然是在同一个请求中

$locale = 'unique_number_to_differntiate_from_yours'; 
setcookie('different_cookie_name', $locale);
echo "<script> console.log(document.cookie); </script>";
exit ;

正如Davin H指出的那样,在调用setcookie之前,你需要确保没有输出,甚至不需要空格。原因是使用标头设置了cookie,并且在输出开始后无法设置标头。