setcookie 不适用于 safari 和 firefox

setcookie not working on safari and firefox

我正在尝试为我的项目设置 cookie,但它在 Safari 或 Firefox 上不起作用。

不过我在 Google Chrome 上得到了结果。

这是我的代码:

 setcookie('mycookiename', 'data', time()+60*60*24*365, '/', false);
 print_r($_COOKIE['mycookiename']);

感谢您的帮助。

这段代码可以正常工作

setcookie("mycookiename", 'data', time()+60*60*24*365, "/", "", "", TRUE);
print_r($_COOKIE['mycookiename']);

对我来说是因为 ajax 和 fetch。

fetch 不会发送 cookie,除非您设置 credentials init 选项:

fetch(url, {
    method: 'POST',
    credentials: 'same-origin',
    headers: {...},
    ...
  });

此外,如果您正在执行跨源请求,您似乎也应该设置 Access-Control-Allow-Credentials: true header。看到这个: https://whosebug.com/a/40255834/4718434

有时我会遇到这个问题,当我使用小写的 Cookie 名称时,例如 "geoLoсationCode"。当我更改为大写 "GEO_LOCATION_CODE".

时,它适用于 Safari