当我在iOS Safari(和Chrome)上关闭并重新打开浏览器时,我的持久性Cookie将被删除。我在iOS 11上,但也在iOS10 / 9上测试过。 Cookie在Android和桌面上保持正确。奇怪的是,它适用于iOS上的Firefox。
我在这里缺少什么?
这是我的javascript代码设置cookie和过期日期:
setCookie = function(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";path=/";
}
setCookie("test", "random test value", 365);
答案 0 :(得分:1)
我刚刚遇到这个问题,因为在生产服务器上测试时,Cookie在Android /桌面设备上持久存在但在iOS11上不存在。解决方案似乎是定义cookie的域名:
setCookie = function(cname, cvalue, exdays) {
var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));
var expires = "expires="+ d.toUTCString();
document.cookie = cname + "=" + cvalue + ";" + expires + ";domain=" + window.location.hostname + ";path=/";
}
setCookie("test", "random test value", 365);
iOS11似乎在它接受的cookie方面受到更多限制。我可以找到许多营销模糊关于它更好的隐私,但很少有关于如何根据新的限制正确实现事物(例如持久登录/ SSO)的技术细节。任何人都可以推荐任何有用的链接吗?