是!document.cookie可靠吗?

Gat*_*ler 9 javascript cookies

我想知道使用以下Javascript代码是否可靠:

if (!document.cookie) {
    alert('Cookies are disabled.');
}
Run Code Online (Sandbox Code Playgroud)

我已经在IE,Firefox和Chrome中对此进行了测试,看来当您禁用cookie时,document.cookie对象变得不可用.有没有人有这种方法工作/不工作的经验?

非常感谢
斯蒂芬

额外

我很清楚这种方法需要在客户端上启用JavaScript.我也知道其他服务器端/ JavaScript解决方案.请讨论继续讨论主题.

Bol*_*wyn 10

在XHTML文档中,根本不存在document.cookie(如果您将文档发送为Firefox 2或永远不会application/xml).我必须痛苦地学习document,然而它可以被设置:

document.cookie = "foo";
Run Code Online (Sandbox Code Playgroud)

这是有效的JS,浏览器耸耸肩并设置cookie变量的属性document.但是在HTTP标头中转换它的特殊魔法不会被调用.

简而言之:不,你不能确定,缺席document.cookie总是与禁用的cookie相同,反之亦然.

  • @Paul:问题暗示JS是否开启?否则,如果客户端计算机已关闭,则代码也不可靠. (2认同)

Gmo*_*onC 6

在这种情况下我唯一可靠的方法(检查cookie是否被禁用,你不介意javascript问题,需要客户端解决方案)是使用set函数测试cookie,然后获取get函数读回来.如果无法回读测试cookie,则会关闭cookie.

您可以编写自己的实现,从quirksmode读取一个很好的资源,使用jQuery插件开箱即用的解决方案.