响应在开始时给出 // 斜杠 - 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 文件中设置 secureJSONsecureJSONPrefix 来设置 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).