像这样设置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。那就更不靠谱了。
可能的原因有以下2种。请检查并相应地申请。
您将安全标志设置为 false,这意味着 cookie 只能通过 HTTP(而不是 HTTPS)发送。确保您的页面通过 HTTP 而不是 HTTPS 提供服务。如果通过 HTTPS 提供服务,请将安全标志设置为 true。
现代浏览器已开始强制执行 cookie 的 SameSite 属性,这可能会影响跨站点请求。确保正确设置 SameSite=None 属性,尤其是在跨不同域访问您的网站时。