【问题标题】:Cookie only sets when NOT using JSON.stringifyCookie 仅在不使用 JSON.stringify 时设置
【发布时间】:2015-05-16 03:35:27
【问题描述】:

我正在使用 jQuery cookie 创建 cookie,当我不使用 JSON.stringify 时设置这些 cookie,如下所示:

$.cookie("previousObject", savedObjs);

但是在我使用JSON.stringify()时没有设置,如下:

$.cookie("previousStories", JSON.stringify(savedObjs));

我还尝试了以下方法:

$.cookie.json = true;
$.cookie("previousObject", savedObjs);

应该创建的cookie记录到控制台,但是当我在浏览器中查看resources时,那里没有cookie。

如何使这些 cookie 发挥作用?

【问题讨论】:

  • 控制台有错误吗?
  • @epascarello 没有错误...它使用"previousStories= 加上字符串化对象记录
  • 你的使用没有问题。确保您打开资源下的 Cookies 部分,它将隐藏在您网站的主机名下。

标签: javascript jquery json cookies


【解决方案1】:

在将对象传递给 $.cookie() 之前,您不需要显式地对对象进行字符串化,因为无论如何后者都会自动为您执行此操作。

这是编码您的值的代码部分:

function stringifyCookieValue(value) {
    return encode(config.json ? JSON.stringify(value) : String(value));
}

所以你的最后一段代码实际上是正确的:

$.cookie.json = true;
$.cookie("previousObject", savedObjs);

在 Firefox 中,您可以在 Storage Inspector 中找到您的 cookie:https://developer.mozilla.org/en-US/docs/Tools/Storage_Inspector#Cookies

Chrome 在资源中显示它们:https://developer.chrome.com/devtools/docs/resource-panel#cookies

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-20
    • 2015-08-09
    • 2017-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多