Coldfusion 9 序列化JSON()

Coldfusion 9 serializeJSON()

每当我在 cf9 中使用 serializeJSON 时,JSON 都会在 returns 前加上“//”。这非常令人沮丧,因为即使是 coldfusion 也会在尝试将其解码为 json 时抛出错误。例如:

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

上面的代码会抛出类似 'unable to parse character at position 1: /' 的错误。为了完成这项工作,我必须进行字符串替换并将 '' 换成 '//'。

我似乎找不到关于这个问题的任何信息。这是某种我不理解但按预期工作的功能吗?我是否缺少某种可以解决此问题的设置?

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

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

中有更深入的解释

快速更新:之前有人向 Adob​​e 提交了错误票以禁用 SerializeJSON 函数的安全 JSON 前缀,形式为属性..

Ticket [Fixed]

从那时起,Adobe 不得不将属性 useSecureJSONPrefix 添加到 SerializeJSON 函数中。

Documentation

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