由于同站问题 PHP 无法读取 cookie 值

问题描述 投票:0回答:1

像这样设置cookie。

setrawcookie('cookie_name',$email_address, time() + (5 * 60), "/",'',false,'None');

然后使用 JavaScript 读取 cookie 值。

readCookie() {
    return document.cookie.match('(^|;)\\s*' + 'mco_bidder' + '\\s*=\\s*([^;]+)')?.pop() || '';
}

这会工作一段时间,然后停止工作。我不明白发生了什么事。当我控制台记录从

readCookie
返回的值时,它是一个空字符串,但我可以在调试器(Chrome 和 Firefox)中看到 cookie 已设置,并且将电子邮件地址作为值。

我尝试使用

header()
设置具有相似值/配置的 cookie。那就更不靠谱了。

javascript php cookies
1个回答
0
投票

可能的原因有以下2种。请检查并相应地申请。

  1. 您将安全标志设置为 false,这意味着 cookie 只能通过 HTTP(而不是 HTTPS)发送。确保您的页面通过 HTTP 而不是 HTTPS 提供服务。如果通过 HTTPS 提供服务,请将安全标志设置为 true。

  2. 现代浏览器已开始强制执行 cookie 的 SameSite 属性,这可能会影响跨站点请求。确保正确设置 SameSite=None 属性,尤其是在跨不同域访问您的网站时。

© www.soinside.com 2019 - 2024. All rights reserved.