【问题标题】:duplicate cookies in IE 9IE 9 中的重复 cookie
【发布时间】:2012-08-07 08:58:57
【问题描述】:

我正在使用(客户端)cookie(在 javascript 中)来存储用户选择的键/值对,从一个会话到下一个会话以及从一个页面到另一个页面。似乎 Chrome、Safari 和 Firefox 理解一个键只能有一个值,但 IE 采取不同的看法。 例如: 我有一个功能(“viewMode”),它可以采用四个用户可选值之一:-2、-1、0 或 1。 当我设置 cookie 时,我给它的有效期是今天 + 100 天。

function setCookie(c_name, value, expireDays) {
    expireDays *= 1;
    var expireDate = new Date();
    expireDate.setDate(expireDate.getDate() + expireDays);
    var c_value = escape(value) + ((expireDays == null) ? "" : "; expires=" + expireDate.toUTCString());
    document.cookie = c_name + "=" + c_value; 
}

默认值为0。当用户选择值时,比如1,产生调用

setCookie("viewMode", 1, 100); 

IE 存储了这两个值,但其他人理解密钥已被覆盖的概念。 这是下一次加载的 HTTP GET 的 cookie 组件:

Cookie: dispText=FileName; viewMode=0; MultiTrack=0; showClouds=0; smokeTrailLength=256; IGCAltSource=0; HideTracks=0; ColorSpeed=1; showCompass=0; viewMode=1; chosenDirectoryPath=C%3A%5CAlan%5CSTarTraXdata%5CTestTracks; IGCAltSource=1; showCockpitInstruments=0; showJavaOPenPopup=0; dispText=None; smokeTrailLength=-1; PHPSESSID=d96b0827725b1e6e313dcdfddfaed0a0

如您所见,cookie“viewMode”出现了两次,一次是 viewMode=0,一次是 viewMode = 1。 那么... cookie 真的是一个键/值对,而 IE 错了,还是什么? 我看到一些帖子表明 cookie 是键/值/日期三元组,但其他地方似乎不支持,而且我在 W3C 文档中找不到规范。

【问题讨论】:

    标签: javascript internet-explorer http cookies


    【解决方案1】:

    这不是答案,但我的问题已通过解决方法解决! 我什至试图通过

    删除 viewMode cookie
    document.cookie="viewMode =; expires=15/02/2003 00:00:00"; 
    

    没有任何成功。

    一怒之下,我删除了我所有的 IE cookie,现在一切正常!

    似乎“viewMode=1”cookie 是某种怪物(“Cookie Monster”明白了哈哈),对被更改或删除没有反应。 现在我的页面正在按预期愉快地更新 viewMode cookie。

    所以我有一个变通办法,但我仍然很想知道到底发生了什么。

    【讨论】:

      猜你喜欢
      • 2011-10-13
      • 2014-07-02
      • 2011-08-10
      • 1970-01-01
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 2011-07-26
      • 1970-01-01
      相关资源
      最近更新 更多