【问题标题】:setcookie not working on safari and firefoxsetcookie 在 safari 和 firefox 上不起作用
【发布时间】:2016-07-11 19:17:50
【问题描述】:

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

我在谷歌浏览器上得到了结果。

这是我的代码:

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

感谢您的帮助。

【问题讨论】:

  • 将域作为最后一个参数传递(不是假的)您使用的是什么主机名?本地主机,127.0.0.1,www.somethingelse.com?

标签: php cookies setcookie


【解决方案1】:

这段代码可以正常工作

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

【讨论】:

  • 刷新浏览器并检查
【解决方案2】:

对我来说,这是因为 ajax 和 fetch。

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
    猜你喜欢
    • 1970-01-01
    • 2021-11-02
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多