Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
460 views
in Technique[技术] by (71.8m points)

javascript - Chrome cannot Set Cookie without server

I create a small project without using the server. In that i set the cookie for retrive the values. If I run this project in FF, Safari, IE 9 it works fine it sets the cookie and retrive the cookie but in chrome 23.0 it does not set 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>

In FF, Safari, IE 9 it shows the cookie value "samplename" But in chrome 23.0 it shows "undefined". If I use a server for this then chrome sets the cookie. How can I set cookie in chrome also with out using a server. Thanks in advance

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

It seems like Chrome intenionally is ignoring cookies for local files, it would work if you'd either use a local server like xammp browsing it with 127.0.0.1

Or start chrome with the --enable-file-cookies flag from command line

You can get further information on this SO question

or this discussion


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...