我在这样的Rails上设置了一个cookie,
cookies[:account] = { :value => @account.to_s, :expires => 3.month.from_now }
这似乎工作得很好,一个简单的debug @account
显示
--- myvalue
…
但是当使用jQuery.Cookie调用cookie时,它会返回"[object Object]"
。
> $.cookie('account');
"[object Object]"
知道为什么会发生这种情况以及如何解决它?
答案 0 :(得分:3)
我知道我在这里的答案已经很晚了,但我想我也会在这方面发布我的解决方案。我在这个jQuery Cookie返回[object Object]的问题上争了好几个小时,发现了一些可能导致这种情况的案例: -
最后,我决定使用localStorage选项,因为我存储的数据非常小,不值得浪费时间试图让jQuery cookie工作。
我希望这可以帮助别人,并将他们从沮丧的时间中拯救出来!
答案 1 :(得分:2)
对于遇到此问题的任何其他人,请检查以确保您没有多个同名的Cookie(具有不同的路径或过期)。这可能导致$ .cookie()返回[object Object]
答案 2 :(得分:1)
[object Object]
是Object.toString()
的返回值,因此这意味着$ .cookie('account')返回一个非Number非String对象。
在开始计算返回值中的内容时(为了帮助您确定返回的对象中的内容),可以循环查看属性以找出它。
所以,就像这样:
var obj = $.cookie('account');
var msg = [];
for(var i in obj) msg.push( i +" = " + obj[i]);
alert(msg.join("\n")); // or console.log(msg.join("\n"));
答案 3 :(得分:1)
您可以使用Mozilla Library。 你将能够像这样设置和获取cookie
docCookies.setItem(name, value);
docCookies.getItem(name);
答案 4 :(得分:0)
Cookie的最大大小仅为4kb。这可能是其中一个原因。
至于我的情况。单独查看数据肯定会超过4kb。
我的替代方案是使用localStorage。