2

サーバーを使用せずに小さなプロジェクトを作成します。その中で、値を取得するためのCookieを設定しました。このプロジェクトを FF、Safari、IE 9 で実行すると、正常に動作し、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 では「undefined」と表示されます。これにサーバーを使用すると、chrome が Cookie を設定します。サーバーを使用せずにクロムにクッキーを設定するにはどうすればよいですか。前もって感謝します

4

1 に答える 1

4

Chrome は意図的にローカル ファイルの Cookie を無視しているようです。127.0.0.1 で参照する xammp のようなローカル サーバーを使用すると機能します。

--enable-file-cookiesまたは、コマンドラインからフラグを付けてクロムを開始します

このSOの質問に関する詳細情報を入手できます

またはこの議論

于 2012-12-10T12:48:04.933 に答える