Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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/powershell/13.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 object.value返回未定义的_Javascript_Cookies - Fatal编程技术网

Javascript object.value返回未定义的

Javascript object.value返回未定义的,javascript,cookies,Javascript,Cookies,在我的一个Java脚本中,我有一个包含当前保存的所有cookie的对象。该目标通过以下方式获得: var cookies = document.cookie.split(";"). map(function(el){ return el.split("="); }). reduce(function(prev,cur){ prev[cur[0]] = cur[1]; return prev },{}); 之后,我阅读cookie对象,如下所示: console.log(cookies); va

在我的一个Java脚本中,我有一个包含当前保存的所有cookie的对象。该目标通过以下方式获得:

var cookies = document.cookie.split(";").
map(function(el){ return el.split("="); }).
reduce(function(prev,cur){ prev[cur[0]] = cur[1]; return prev },{});
之后,我阅读cookie对象,如下所示:

console.log(cookies);
var json = cookies['tracks'];
console.log(json);
控制台输出看起来像一个普通的javascript对象:

Object { PHPSESSID: "e964d0b67bbabd149906473b6b2183d5",  
         tracks: "%7B%22test%22%3A%22tested%22%2C%2223%22%3A%22ert%22%7D" }
undefined
但是,变量JSON保持未定义状态,这与我是否使用
cookies.tracks
cookies[“tracks”]
或使用哪个浏览器无关,也与我是否尝试检查
PHPSESSID
cookie或
tracks
cookie无关。你知道为什么会这样吗


我知道以前也有人问过类似的问题,但是,给出的答案都不适用于本例。

由于
拆分()
,您可能会遇到密钥中额外空格的问题

当您在“;”上拆分时,键值前面将有一个预先指定的空格,这将贯穿您剩余的处理过程。如果您在Firebug中查看“cookies”对象的DOM版本,请右键单击,
跟踪
,单击“复制路径”,然后粘贴结果,我敢打赌您会看到:
[“跟踪”]


要解决此问题,您可以在逻辑中的某个位置修剪空格,或者使用
cookies[“tracks”]
引用属性。由于
split()
,您可能会在密钥中遇到额外空格的问题

当您在“;”上拆分时,键值前面将有一个预先指定的空格,这将贯穿您剩余的处理过程。如果您在Firebug中查看“cookies”对象的DOM版本,请右键单击,
跟踪
,单击“复制路径”,然后粘贴结果,我敢打赌您会看到:
[“跟踪”]


要解决此问题,您可以在逻辑中的某个位置修剪空格,或者使用
cookies[“tracks”]
引用属性。由于
split()
,您可能会在密钥中遇到额外空格的问题

当您在“;”上拆分时,键值前面将有一个预先指定的空格,这将贯穿您剩余的处理过程。如果您在Firebug中查看“cookies”对象的DOM版本,请右键单击,
跟踪
,单击“复制路径”,然后粘贴结果,我敢打赌您会看到:
[“跟踪”]


要解决此问题,您可以在逻辑中的某个位置修剪空格,或者使用
cookies[“tracks”]
引用属性。由于
split()
,您可能会在密钥中遇到额外空格的问题

当您在“;”上拆分时,键值前面将有一个预先指定的空格,这将贯穿您剩余的处理过程。如果您在Firebug中查看“cookies”对象的DOM版本,请右键单击,
跟踪
,单击“复制路径”,然后粘贴结果,我敢打赌您会看到:
[“跟踪”]



要解决此问题,您可以在逻辑中的某个位置修剪空格,或者使用
cookies[“tracks”]

引用属性。您提供的代码似乎非常好。如果在赋值后立即尝试记录
json
变量,会发生什么情况?您在哪里使用此变量并发现它未定义?您确定这两部分在同一范围内吗?我看不出这是怎么回事。我编辑了这个问题,从第二个console.log(json)调用中得到了未定义的正确答案。您提供的代码看起来非常好。如果在赋值后立即尝试记录
json
变量,会发生什么情况?您在哪里使用此变量并发现它未定义?您确定这两部分在同一范围内吗?我看不出这是怎么回事。我编辑了这个问题,从第二个console.log(json)调用中得到了未定义的正确答案。您提供的代码看起来非常好。如果在赋值后立即尝试记录
json
变量,会发生什么情况?您在哪里使用此变量并发现它未定义?您确定这两部分在同一范围内吗?我看不出这是怎么回事。我编辑了这个问题,从第二个console.log(json)调用中得到了未定义的正确答案。您提供的代码看起来非常好。如果在赋值后立即尝试记录
json
变量,会发生什么情况?您在哪里使用此变量并发现它未定义?您确定这两部分在同一范围内吗?我看不出这是怎么回事。我编辑了这个问题,从第二个console.log(json)调用中得到了未定义的正确答案。是的,在“tracks”键前面确实有一个空格。谢谢你的帮助!抢手货我也考虑过这一点,但如果关键帧包含前导空格或尾随空格,Chrome的格式会有所不同:
Object{“tracks”:42}
。指定您正在使用的浏览器总是一个好主意,@Erik@FelixKling-实际上我有点想知道。不同浏览器如何格式化
cookie
字符串。是的,在关键的“轨迹”前面确实有一个空间。谢谢你的帮助!抢手货我也考虑过这一点,但如果关键帧包含前导空格或尾随空格,Chrome的格式会有所不同:
Object{“tracks”:42}
。指定您正在使用的浏览器总是一个好主意,@Erik@FelixKling-实际上我有点想知道。不同浏览器如何格式化
cookie
字符串。是的,在关键的“轨迹”前面确实有一个空间。谢谢你的帮助!抢手货我也考虑过这一点,但如果关键帧包含前导空格或尾随空格,Chrome的格式会有所不同:
Object{“tracks”:42}
。指定您正在使用的浏览器总是一个好主意,@Erik@FelixKling-实际上我有点想知道。不同的浏览器如何格式化