服务器设置的 cookie 第一次未在 javascript 中显示

cookies set by server doesn't get shown in javascript first time

我真的不知道交易是什么。我在 php:

中设置了我的 cookie
$locale = 'en_US';
setcookie('locale', $locale);

我在 Javascript 中访问它:

console.log(document.cookie);

奇怪的是这没有显示 cookie。但是,如果我打开浏览器控制台并键入 document.cookie,它会显示所有 cookie。

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

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

Cookie 是否存储在响应的末尾?如果是的话,如何才能让它们存储在开头?

以下代码在 Chrome 中对我有用,显然是在同一个请求中

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

正如 Davin H 所指出的,您需要确保在调用 setcookie 之前没有输出,甚至 space 也没有。原因是cookie是用headers设置的,一旦开始输出就不能再设置headers了