【问题标题】:setCookie does not work in ChromesetCookie 在 Chrome 中不起作用
【发布时间】:2014-09-27 11:27:13
【问题描述】:

我的代码中有一个 setCookie 和 getCookie 函数。它们在 IE 和 FireFox 中运行良好,但在 Chrome 中却不行。基本上,我的脚本会检查是否选中了某些复选框,然后根据组合将某个值存储在名为“层”的 cookie 中。我收到存储在“层”中的值的警报,但它在 Chrome 中始终显示为“未定义”。我检查了我的设置,我允许 cookie 并尝试清除它们并再次访问它们。但它不起作用!函数本身肯定没有问题,因为它们在其他浏览器中运行良好……只是 Chrome。

    function setCookie(cname,value,exdays)
               {
                    var d = new Date();
                    d.setTime(d.getTime() + (exdays*24*60*60*1000));
                    var expires = "expires="+d.toGMTString();
                    document.cookie = cname + "=" + value + "; " + exdays + "; ";    
               }

    function getCookie(c_name)
                {
                    var i,x,y,ARRcookies=document.cookie.split(";");
                    for (i=0;i<ARRcookies.length;i++)
                    {
                            x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
                            y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
                            x=x.replace(/^\s+|\s+$/g,"");
                            if (x==c_name)
                            {
                                return unescape(y);
                            }
                    }
                }

    var ch1 = document.getElementById("checkbox-h-2a").checked;
    var ch2 = document.getElementById("checkbox-h-2b").checked;
    var ch3 = document.getElementById("checkbox-h-2c").checked;

    if (ch1==true && ch2==false && ch3==false) {
      setCookie("layer","hosp",15);
    }
    else if (ch1==true && ch2==true && ch3==false) {
      setCookie("layer","hospFire",15);
    }
    else if (ch1==true && ch2==false && ch3==true) {
      setCookie("layer","hospPolice",15);
    }
    else if (ch1==false && ch2==true && ch3==true) {
      setCookie("layer","firePolice",15);
    }
    else if (ch1==false && ch2==true && ch3==false) {
      setCookie("layer","fire",15);
    }
    else if (ch1==false && ch2==false && ch3==true) {
      setCookie("layer","police",15);
    }
    else if ((ch1==false && ch2==false && ch3==false) || (document.getElementById("checkbox-h-2c").checked==true && ch2==true && ch3==true)) {
      setCookie("layer","hospFirePolice",15);
    }
    alert(getCookie("layer"));
    window.location = FACILITY_MAP;

【问题讨论】:

  • 嘿,我真的可以在这里得到一些帮助,而不是投反对票吗?
  • 赞成票,因为没有给出反对票的理由。这是一个合理的问题

标签: javascript jquery google-chrome cookies


【解决方案1】:

我不确定,但来自 S.O. 上的其他答案。似乎 chrome 会阻止 cookie,除非它们是由服务器设置的。这是我发现的:13801181

还有other post

还有这个讨论chromium

感谢 C5H8NNaO4 找到它们。后面两个链接都来自他的回答

但我可能错了。

【讨论】:

    猜你喜欢
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    • 2015-07-30
    • 1970-01-01
    • 2013-10-09
    • 2011-10-04
    相关资源
    最近更新 更多