Coldfusion 9 serializeJSON()

时间:2015-06-10 14:37:47

标签: json coldfusion adobe coldfusion-9 cfml

无论何时我在cf9中使用serializeJSON,它返回的JSON前缀为'//'。这非常令人沮丧,因为即使是coldfusion也会尝试将其解码为json。例如:

var a = { stuff = 'some content' };
a = serializejSON( a ); // the content of a is now: //{"STUFF":"some content"}
b = deserializeJSON( a );

上面的代码会抛出一个错误,上面写着'无法解析位置1的字符:/'。为了完成这项工作,我必须进行字符串替换并换出''作为'//'。

我似乎无法找到有关此问题的任何信息。这是某种我不理解的功能并且按预期工作的功能吗?我错过了某种修复此问题的设置吗?

2 个答案:

答案 0 :(得分:8)

您可以在ColdFusion管理员中禁用此功能。转到服务器设置>设置并取消选中Prefix serialized JSON with

但如果关闭此功能,则会产生安全隐患。这有助于保护您的JSON数据免受跨站点脚本攻击,并在此StackOverflow answer

中进行了更深入的解释。

答案 1 :(得分:0)

快速更新:一个人之前向Adobe提交了一个错误故障单,以便以属性的形式禁用SerializeJSON函数的安全JSON前缀。

Ticket [Fixed]

此后Adobe强制将useSecureJSONPrefix属性添加到SerializeJSON功能中。

Documentation

通过这种方式,您可以在ColdFusion Administrator中保留安全设置,并在不需要的地方将其禁用。