Setcookie 在 Safari 和 Firefox 上不起作用


setcookie not working on safari and firefox

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

不过,我在谷歌浏览器上得到结果。

这是我的代码:

 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,除非您设置了凭据初始化选项:

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

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

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