【问题标题】:How can I save a cookie如何保存 cookie
【发布时间】:2017-02-08 00:25:14
【问题描述】:

我正在尝试保存一个 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

【问题讨论】:

  • 您的示例运行良好。你用的是什么浏览器?

标签: javascript html cookies


【解决方案1】:

只有当页面在网络服务器上运行时,才能设置 Chrome cookie。 例如通过http://localhost/foo/bar.htmlhttp://127.0.0.1/foo/bar.html 访问

编辑:你也可以看看这个答案: where cookie saved for local HTML file 我刚刚自己测试过:它适用于 Firefox。

否则最好测试这种情况,建立一个本地网络服务器,如apache

【讨论】:

  • 我只是把文件拖到谷歌浏览器上,就像我朋友做的那样,它和他一起工作
  • @khaled 查看我编辑的答案。它适用于 firefox(在真实网页中,托管在服务器上,它也适用于 chrome)
【解决方案2】:

我已经从网络服务器测试了你的代码,它运行良好。

您必须从网络服务器加载它,而不是从本地文件系统加载。

如果您想自己证明,JSFiddle 就在这里。

https://jsfiddle.net/brx5ropp/

请注意,由于 JSFiddle 的限制,我不得不将按钮的点击触发器移动到如下代码:

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

...但这与我的答案无关!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多