我在使用JavaScript使用SameSite = none设置cookie时遇到问题。
我有一个客户网站,该网站将我们网站中的内容提取到iFrame中。我需要能够在(客户端站点的)用户的计算机上设置Cookie,该Cookie会在用户下次访问iFrame时记住布局首选项。
我有以下代码在非Chrome浏览器中可以正常运行:
function setCookie(c_name, value, exdays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
document.cookie = c_name + "=" + c_value;
}
但是,如果我添加一行(在下面突出显示)以添加SameSite和Secure属性,则不会设置Cookie(在任何浏览器中):
function setCookie(c_name, value, exdays) {
var exdate = new Date();
exdate.setDate(exdate.getDate() + exdays);
var c_value = escape(value) + ((exdays == null) ? "" : "; expires=" + exdate.toUTCString());
**if (c_name == "preferenceCookie") { c_value += ";SameSite=None;Secure" };**
document.cookie = c_name + "=" + c_value;
}
我确定我想念的东西非常明显,但这让我发疯了。 (或者只是做不到?)
(哦-这是我的第一篇文章-请保持温柔!)
谢谢。