2

我在不使用服务器的情况下创建了一个小项目。在那里我设置了 cookie 来检索值。如果我在 FF、Safari、IE 9 中运行这个项目,它可以正常工作,它会设置 cookie 并检索 cookie,但在 chrome 23.0 中它不会设置 cookie。

    <script>
       window.onbeforeunload=function(){
            document.cookie = "sample" + '=; expires=Thu, 01 Jan 1970 00:00:01 GMT;';
        }
        function setCookie(c_name,value,exdays)
        {
            var exdate=new Date();
            exdate.setDate(exdate.getDate() + exdays);
            var c_value=escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
            document.cookie=c_name + "=" + c_value;
        }
        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);
                }
            }
        }
        setCookie("sample","samplename",365);
        alert(getCookie("sample"));
    </script>

在 FF、Safari、IE 9 中显示 cookie 值“samplename”但在 chrome 23.0 中显示“未定义”。如果我为此使用服务器,那么 chrome 会设置 cookie。如何在不使用服务器的情况下在 chrome 中设置 cookie。提前致谢

4

1 回答 1

4

似乎 Chrome 故意忽略本地文件的 cookie,如果您使用 xammp 之类的本地服务器使用 127.0.0.1 浏览它,它会起作用

--enable-file-cookies或者使用命令行中的标志启动 chrome

您可以获得有关此SO 问题的更多信息

或者这个讨论

于 2012-12-10T12:48:04.933 回答