【问题标题】:Chrome ignoring cross-domain cookie expirationChrome 忽略跨域 cookie 过期
【发布时间】:2011-11-14 03:12:43
【问题描述】:

在域 1 上,我有一个发布到域 2 的表单

<form method="post" action="http://domain2.com/result.php">

域 2 上的脚本 result.php 在域 2 上设置了一个应该持续到 2038 年的 cookie。

setcookie('test', 'val', 2147485540, '/', '.domain2.com', false);

cookie 正在被存储,但在 Chrome 上,过期设置为“当我关闭浏览器时”(换句话说,0)。在 Firefox 上,过期设置正确。

有什么办法可以解决这个问题,或者这是我必须忍受的关于跨域发布的 Chrome 安全设置?

【问题讨论】:

    标签: php google-chrome cookies


    【解决方案1】:

    它与过期有关,而不是域。您正在使用 2147485540,它相当于 Tue, 19 Jan 2038 03:45:40 某些浏览器在 2038 年 1 月 19 日星期二 03:14:07 UTC 之后出现问题。

    这将起作用:

    setcookie('test', 'val', gmmktime(3, 14, 7, 1, 19, 2038), '/', '.domain2.com', false);
    

    这不会:

    setcookie('test', 'val', gmmktime(3, 14, 8, 1, 19, 2038), '/', '.domain2.com', false);
    

    【讨论】:

    • 好的,谢谢!我知道 2038 年的事情,但我以为我已经在 3:14:07 之前设置了它。我不知道在那之后它是如何结束的。我的愚蠢疏忽。
    猜你喜欢
    • 2012-11-29
    • 2020-07-17
    • 2017-10-06
    • 2017-10-31
    • 2014-05-26
    • 2019-03-20
    • 2018-11-13
    • 2016-02-08
    • 1970-01-01
    相关资源
    最近更新 更多