Ste*_*eve 5 coldfusion json coldfusion-10
我有一个应用程序,我正在努力从CF8转换为CF10和我的一些远程CFC,其中返回的数据应该是JSON现在失败,因为似乎有一个"//"预先返回数据.例如,这是返回结构的输出:
//{"SUCCESS":true,"ERRORS":[],"DATA":{"COLUMNS":["AUTHRESULT","SPID","EMAIL","RID"],"DATA":[[true,361541,"user@domain.com",""]]}}
Run Code Online (Sandbox Code Playgroud)
在CF8服务器上运行相同CFC的相同功能给出:
{"ERRORS":[],"SUCCESS":true,"DATA":{"COLUMNS":["AUTHRESULT","SPID","EMAIL","RID"],"DATA":[[true,361541,"user@domain.com",""]]}}
Run Code Online (Sandbox Code Playgroud)
代理所有请求的CFC确实具有returnFormat ="JSON" - 但是在proxyCFC或从proxyCFC扩展的CFC中没有调用SerializeJSON().
我不确定处理这个问题的最佳方法是什么.在响应中修剪'//'是可能的,但它似乎并不"正确".我需要在CF10结尾处理它,因为这些函数不仅在我们的应用程序中使用,而且还在一些远程应用程序中使用(有些是通过http://帖子,有些是通过jQuery Ajax调用).
这是ColdFusion管理员在设置下的服务器端设置. 使用前缀序列化JSON.默认情况下启用它以确保安全性.保护Web服务,该服务通过在序列化的JSON字符串前加上自定义前缀来为跨站点脚本攻击返回JSON数据..也许您已经在ColdFusion 8服务器上关闭了它.我不建议把它关掉.
请参阅Raymond Camden的这篇文章 - 使用jQuery和jQueryUI中的前缀处理JSON
注意:也可以通过设置secureJSON和secureJSONPrefixApplication.cfc文件为每个应用程序设置此设置.请参阅此处的文档 - 应用程序变量.
secureJSON- 一个布尔值,指定是否在ColdFusion函数以JSON格式返回的值的前面添加安全性前缀以响应远程调用.
默认值是"管理员服务器设置">"设置"页面中的"前缀序列化JSON"设置的值(默认为false).您可以在cffunction标记中覆盖此值.
secureJSONPrefix- 如果secureJSON设置为true,则将安全前缀放在ColdFusion函数以JSON格式返回的值之前,以响应远程调用.
默认值是"管理员服务器设置">"设置"页面中的"前缀序列化JSON"设置的值(默认为//,JavaScript注释字符).
| 归档时间: |
|
| 查看次数: |
2124 次 |
| 最近记录: |