0

我有一个 chrome 扩展,我在 document.cookie 中存储了一个 cookie。然后每次用户打开弹出框时都会重新获取它。

我使用了 Microsoft Edge 转换器工具,将扩展转换为支持边缘浏览器。这一切都按预期工作。

但是 cookie 永远不会被持久化,这是边缘浏览器的限制吗?还是我错过了什么?

我可以设置,然后立即获取 cookie,它永远不会返回。

下面复制的是设置cookie的来源

var d = new Date();
d.setTime(d.getTime() + (exdays*24*60*60*1000));var expires = "expires="+ d.toUTCString();        
var path = "path='/'";
document.cookie = cname + "=" + (cvalue) + "; " + expires + "; path=/;";

获取 cookie:

var ca = document.cookie.split(';');
for(var i = 0; i <ca.length; i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') {
        c = c.substring(1);
    }
    if (c.indexOf(name) == 0) {
        return (c.substring(name.length,c.length));
    }
}

return ""; 
4

1 回答 1

1

IE / Edge 在以下情况下静默丢弃 cookie:

在顶级域上,例如“example.com” 在包含下划线的域名上,例如“my_sub.doma.in”

https://blogs.msdn.microsoft.com/ieinternals/2009/08/20/internet-explorer-cookie-internals-faq/

于 2017-02-16T09:25:01.903 回答