5

初めての REST API をセットアップしましたが、Taffy フレームワークの使用は初めてです。

ColdFusion 10、IIS、および ColdBox を使用しているサイトがあります。ディレクトリに Hello World の例をセットアップしました。応答に//2 つのスラッシュが含まれています。応答の例を次に示します。

//["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 の使用と関係がありますか?

4

1 に答える 1

8

これは、 ColdFusion 管理画面の settings の下にあるサーバー側の設定から来ています。 シリアル化された JSON の前に. ColdFusion 10 以降では、セキュリティのためにデフォルトで有効になっています。(この機能は ColdFusion 9 で追加されたと思います。)シリアル化された JSON 文字列の前にカスタム プレフィックスを付けることで、クロスサイト スクリプティング攻撃から JSON データを返す Web サービスを保護します。そこでオフにすることもできますが、お勧めしません。代わりに、コードで処理する必要があります。

Raymond Camden のこの投稿を参照してください - jQuery および jQueryUI でプレフィックスを使用して JSON を処理する

注: この設定は、Application.cfc ファイルでsecureJSONとを設定することにより、アプリケーションごとに設定することもできます。secureJSONPrefixそれに関するドキュメントを参照してください -アプリケーション変数

secureJSON- ColdFusion 関数がリモート呼び出しに応答して JSON 形式で返す値の前にセキュリティ プレフィックスを追加するかどうかを指定するブール値。

デフォルト値は、「アドミニストレーター サーバー設定 > 設定」ページの「シリアライズされた JSON のプレフィックス」設定の値です (デフォルトは false)。この値は cffunction タグでオーバーライドできます。

secureJSONPrefix- secureJSON 設定が true の場合に、ColdFusion 関数がリモート呼び出しに応答して JSON 形式で返す値の前に付けるセキュリティ プレフィックス。

デフォルト値は、「アドミニストレーター・サーバー設定」 > 「設定」ページの「シリアライズされた JSON のプレフィックス」設定の値です (デフォルトは //、JavaScript コメント文字)。

于 2016-01-11T13:48:08.300 に答える