簡體   English   中英

如何保存Cookie

[英]How can I save a cookie

我正在嘗試保存Cookie,然后再次加載

我有這個代碼

<html>
    <head>
        <script>
            var myCookies = {};

            function saveCookies()
            {
                myCookies["_uuser"] = document.getElementById("user").value;
                myCookies["_uuage"] = document.getElementById("age").value;
                //Start Reuseable Section
                document.cookie = "";
                var expiresAttrib = new Date(Date.now()+60*1000).toString();
                var cookieString = "";
                for (var key in myCookies)
                {
                    cookieString = key+"="+myCookies[key]+";"+expiresAttrib+";";
                    document.cookie = cookieString;
                }
                //End Reuseable Section
                document.getElementById("out").innerHTML = document.cookie;
            }

            function loadCookies()
            {
                //Start Reuseable Section
                myCookies = {};
                var kv = document.cookie.split(";");
                for (var id in kv)
                {
                    var cookie = kv[id].split("=");
                    myCookies[cookie[0].trim()] = cookie[1];
                }
                //End Reuseable Section
                document.getElementById("user").value = myCookies["_uuser"];
                document.getElementById("age").value = myCookies["_uuage"];
            }
        </script>
    </head>
    <body>
        User: <input type="text" id="user">
        Age: <input type="text" id="age">
        <button onclick="saveCookies()">Save To Cookies</button>
        <button onclick="loadCookies()">Load From Cookies</button>
        <p id="out"></p>
    </body>
</html>

當我輸入名稱和年齡的輸入,然后單擊“保存到cookie”,然后從cookie加載時鍾時,對於用戶和年齡,我都得到了這個“未定義”!

我的代碼中缺少什么,所以我可以保存cookie

僅當網頁在網絡服務器上運行時,才可以設置Chrome Cookie。 例如,通過http://localhost/foo/bar.htmlhttp://127.0.0.1/foo/bar.html訪問

編輯 :您可能也可以查看以下答案: 在本地HTML文件中保存的cookie是我自己親自測試的:它與Firefox兼容。

否則,最好測試一個類似apache的本地網絡服務器來測試此類情況

我已經從網絡服務器上測試了您的代碼,效果很好。

您必須從Web服務器而不是本地文件系統中加載它。

如果您想自己證明JSFiddle,請點擊這里。

https://jsfiddle.net/brx5ropp/

請注意,由於JSFiddle的限制,我不得不將按鈕的點擊觸發器移動為如下代碼:

document.getElementById("load").addEventListener("click", loadCookies);
document.getElementById("save").addEventListener("click", saveCookies);

...但這與我的答案無關!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM