响应在开始时给出 // 斜杠 - Taffy - ColdFusion
Response is giving // slashes at start - Taffy - ColdFusion
我已经设置了我的第一个 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 看起来像这样:
<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有关系吗?
来自 ColdFusion admin, under settings 中的服务器端设置。 前缀序列化 JSON 为 。从 ColdFusion 10 开始,它默认启用以确保安全。 (我相信该功能是在 ColdFusion 9 中添加的。)通过为序列化的 JSON 字符串添加前缀来保护 Web 服务,return JSON 数据免受 cross-site 脚本攻击使用自定义前缀。 您可以在那里将其关闭,但我不建议这样做。相反,你应该用你的代码来处理它。
请参阅 Raymond Camden 的 post - Handling JSON with prefixes in jQuery and jQueryUI
注意:此设置也可以通过在 Application.cfc 文件中设置 secureJSON
和 secureJSONPrefix
来设置 per-application。请在此处查看相关文档 - Application variables.
secureJSON
- A Boolean value that specifies whether to add a security prefix in front of the value that a ColdFusion function returns in JSON-format in response to a remote call.
The default value is the value of the Prefix serialized JSON setting in the Administrator Server Settings > Settings page (which defaults to false). You can override this value in the cffunction tag.
secureJSONPrefix
- The security prefix to put in front of the value that a ColdFusion function returns in JSON-format in response to a remote call if the secureJSON setting is true.
The default value is the value of the Prefix serialized JSON setting in the Administrator Server Settings > Settings page (which defaults to //, the JavaScript comment character).
我已经设置了我的第一个 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 看起来像这样:
<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有关系吗?
来自 ColdFusion admin, under settings 中的服务器端设置。 前缀序列化 JSON 为 。从 ColdFusion 10 开始,它默认启用以确保安全。 (我相信该功能是在 ColdFusion 9 中添加的。)通过为序列化的 JSON 字符串添加前缀来保护 Web 服务,return JSON 数据免受 cross-site 脚本攻击使用自定义前缀。 您可以在那里将其关闭,但我不建议这样做。相反,你应该用你的代码来处理它。
请参阅 Raymond Camden 的 post - Handling JSON with prefixes in jQuery and jQueryUI
注意:此设置也可以通过在 Application.cfc 文件中设置 secureJSON
和 secureJSONPrefix
来设置 per-application。请在此处查看相关文档 - Application variables.
secureJSON
- A Boolean value that specifies whether to add a security prefix in front of the value that a ColdFusion function returns in JSON-format in response to a remote call.The default value is the value of the Prefix serialized JSON setting in the Administrator Server Settings > Settings page (which defaults to false). You can override this value in the cffunction tag.
secureJSONPrefix
- The security prefix to put in front of the value that a ColdFusion function returns in JSON-format in response to a remote call if the secureJSON setting is true.The default value is the value of the Prefix serialized JSON setting in the Administrator Server Settings > Settings page (which defaults to //, the JavaScript comment character).