Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么jQuery.cookie返回“;[对象对象]”;对于单个字符串值_Javascript_Jquery_Ruby On Rails - Fatal编程技术网

Javascript 为什么jQuery.cookie返回“;[对象对象]”;对于单个字符串值

Javascript 为什么jQuery.cookie返回“;[对象对象]”;对于单个字符串值,javascript,jquery,ruby-on-rails,Javascript,Jquery,Ruby On Rails,我像这样在轨道上放了块饼干 cookies[:account] = { :value => @account.to_s, :expires => 3.month.from_now } 一个简单的debug@account --- myvalue … 但是当使用jQuery.cookie调用cookie时,它会返回一个“[object object]” > $.cookie('account'); "[object Object]" 知道为什么会发生这种情况以及如何解决吗?

我像这样在轨道上放了块饼干

cookies[:account] = { :value => @account.to_s, :expires => 3.month.from_now }
一个简单的
debug@account

--- myvalue
…
但是当使用jQuery.cookie调用cookie时,它会返回一个
“[object object]”

> $.cookie('account');
"[object Object]"

知道为什么会发生这种情况以及如何解决吗?

[object object]
是来自
object.toString()
的返回值,这意味着$.cookie('account')正在返回一个非数字、非字符串的对象

在开始计算返回值中的内容的过程中(为了帮助您确定返回的对象中的内容),需要在属性上循环以计算它

那么像这样,

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"));

[object object]
object.toString()
的返回值,这意味着$.cookie('account')返回的是一个非数字、非字符串对象

在开始计算返回值中的内容的过程中(为了帮助您确定返回的对象中的内容),需要在属性上循环以计算它

那么像这样,

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"));

对于遇到此问题的任何其他人,请检查以确保没有多个同名cookie(具有不同的路径或过期)。这可能导致$.cookie()将
[object object]

返回给遇到此问题的任何其他人,请检查以确保没有多个同名的cookie(路径或过期时间不同)。这可能导致$.cookie()返回您可以使用的
[object object]
。 你可以像这样设置和获取饼干

docCookies.setItem(name, value);
docCookies.getItem(name);
你可以用。 你可以像这样设置和获取饼干

docCookies.setItem(name, value);
docCookies.getItem(name);

我知道我在这里的答案已经很晚了,但我想我也会在这里发布我的解决方案。我与jQuery Cookie返回[object object]的问题斗争了数小时,发现了一些可能导致这种情况的情况:-

  • 相同的cookie名称,但位于不同的路径
  • 我发现传递path/expiry的参数时,插件有时会将其视为我在设置一个值,并尝试设置一个类似JSON的对象,将path和expiry作为值
  • 在加载cookie集代码时加载脚本两次
  • AJAX加载的内容刷新脚本可能会导致出现此问题
最后,我决定使用localStorage选项,因为我存储的数据非常小,不值得浪费时间让jquerycookie工作


我希望这能帮助其他人,让他们从我曾经的挫折中解脱出来

我知道我在这里的答案已经很晚了,但我想我也会在这里发布我的解决方案。我与jQuery Cookie返回[object object]的问题斗争了数小时,发现了一些可能导致这种情况的情况:-

  • 相同的cookie名称,但位于不同的路径
  • 我发现传递path/expiry的参数时,插件有时会将其视为我在设置一个值,并尝试设置一个类似JSON的对象,将path和expiry作为值
  • 在加载cookie集代码时加载脚本两次
  • AJAX加载的内容刷新脚本可能会导致出现此问题
最后,我决定使用localStorage选项,因为我存储的数据非常小,不值得浪费时间让jquerycookie工作


我希望这能帮助其他人,让他们从我曾经的挫折中解脱出来

Cookie的最大大小仅为4kb。这可能是原因之一

至于我的情况。单看数据就肯定超过4kb


不过,我的选择是使用本地存储。

Cookie的最大大小仅为4kb。这可能是原因之一

至于我的情况。单看数据就肯定超过4kb


但我的选择是使用本地存储。

您是否更改了jQuery Cookie的任何参数?否。没有更改任何参数。您是否更改了jQuery Cookie的任何参数?否。没有更改任何参数。已解决。我无意中覆盖了cookie。它会按字面意思返回“[obj e c t to bj e c t]”。不是很有用。解决了。我无意中覆盖了cookie。它会按字面意思返回“[obj e c t to bj e c t]”。不是很有用。