我已经设置了我的第一个REST API,而且我是使用Taffy框架的新手.
我有一个网站正在使用ColdFusion 10,IIS和使用ColdBox.我在目录中设置了一个hello world示例.我//
在回复中得到两个斜线.以下是响应的示例:
//["hello","world"]
我的hello.cfc看起来像这样:
component extends="taffy.core.resource" taffy_uri="/hello" { function get(){ return representationOf(['hello','world']); } }
我的application.cfc看起来像这样:
this.name = hash(getCurrentTemplatePath()); this.mappings["/resources"] = listDeleteAt(cgi.script_name, listLen(cgi.script_name, "/"), "/") & "/resources"; variables.framework = {}; variables.framework.reloadKey = "reload"; variables.framework.reloadPassword = "test"; variables.framework.serializer = "taffy.core.nativeJsonSerializer"; variables.framework.returnExceptionsAsJson = true; function onApplicationStart(){ return super.onApplicationStart(); } function onRequestStart(TARGETPATH){ // reload app to make any envoirnmental changes if(structkeyexists(url,'reloadApp')){ applicationStop(); location('index.cfm'); } // load Taffy onRequestStart before our stuff super.onRequestStart(); if (request.taffyReloaded) { // reload ORM as well ORMReload(); } } function onTaffyRequest(verb, cfc, requestArguments, mimeExt){ return true; } function onError(Exception) { writeDump(Exception); abort; }
谁能告诉我哪里出错了?这与使用ColdBox有关吗?
这是来自ColdFusion管理员中的服务器端设置,在设置下. 使用前缀序列化JSON.从ColdFusion 10开始,默认情况下启用它以确保安全性.(我相信这个功能是在ColdFusion 9中添加的.)保护Web服务,它通过在序列化的JSON字符串前加上自定义前缀来为跨站点脚本攻击返回JSON数据.你可以把它关掉,但我不建议那样做.相反,你应该用你的代码来处理它.
请参阅Raymond Camden的这篇文章 - 使用jQuery和jQueryUI中的前缀处理JSON
注意:也可以通过设置secureJSON
和secureJSONPrefix
Application.cfc文件为每个应用程序设置此设置.请参阅此处的文档 - 应用程序变量.
secureJSON
- 一个布尔值,指定是否在ColdFusion函数以JSON格式返回的值的前面添加安全性前缀以响应远程调用.默认值是"管理员服务器设置">"设置"页面中的"前缀序列化JSON"设置的值(默认为false).您可以在cffunction标记中覆盖此值.
secureJSONPrefix
- 如果secureJSON设置为true,则将安全前缀放在ColdFusion函数以JSON格式返回的值之前,以响应远程调用.默认值是"管理员服务器设置">"设置"页面中的"前缀序列化JSON"设置的值(默认为//,JavaScript注释字符).