我已经设置了我的第一个REST,并且我对使用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看起来是这样的:
<cfcomponent extends="taffy.core.api">
<cfscript>
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;
}
</cfscript>
</cfcomponent>有人能告诉我哪里出了问题吗?这与使用ColdBox有关吗?
发布于 2016-01-11 13:48:08
它来自ColdFusion管理,在设置下中的服务器端设置。前缀序列化的JSON。从ColdFusion 10开始,为了安全性,默认情况下启用它。(我相信这个特性是在ColdFusion 9中添加的。)保护web服务,web服务通过在序列化的JSON字符串前加上一个自定义前缀来返回来自跨站点脚本攻击的JSON数据。你可以在那儿把它关掉,但我不建议你这样做。相反,您应该用代码来处理它。
看这篇雷蒙德·卡姆登- 在jQuery和jQueryUI中使用前缀处理JSON的文章
注意:通过在您的secureJSON文件中设置secureJSONPrefix和Application.cfc,也可以为每个应用程序设置此设置。请参阅这里的文档- 应用变量。
secureJSON-一个布尔值,指定是否在ColdFusion函数返回的值前面添加一个安全前缀,以响应远程调用。 默认值是Administrator Server Settings > Settings页中前缀序列化JSON设置的值(默认值为false)。您可以在cffunction标记中重写此值。secureJSONPrefix- ColdFusion函数以JSON格式返回的值前面放置的安全前缀--如果secureJSON设置为真,则响应远程调用。 默认值是管理员服务器设置>设置页中前缀序列化JSON设置的值(默认为//,JavaScript注释字符)。
https://stackoverflow.com/questions/34697587
复制相似问题