-1

Ajax 呼び出しの後に返さなければならないデータがいくつかあります。私の.cfcページには、データを変換するロジックがあります。各列はタブ区切りで、各行は CRLR で区切られています。cffunctionreturnformat を に設定していますJSON。データを返した後、JavaScript を使用して目的の形式で列と行を分離します。これを行っている間、人々が ColdFusion 9 のあらゆる種類の問題について話しているブログをほとんど見ませんでしたJSON。私の開発サイトでは ColdFusion 10 を使用していますが、データに問題はありませんでした。しかし、ライブ サイトには ColdFusion 9 があり、それによって問題が発生するのではないかと考えていました。私のデータには Address のようなフィールドがあり、このフィールドではあらゆる種類の文字を使用できます。たとえば、データが次のような場合、coldfusion 9 の戻り型 JSON には問題があります。2131231D文字列と整数の組み合わせがDJSON で終わる場合、同じデータは返されません。だから私の質問は、この状況で何をすべきですか?この問題の修正はありますか? JSON は信頼でき、ColdFusion 9 で使用することをお勧めしますか? 回避できるように.cfcページのデータを変換するツールも探していましたcffunction returnformat='JSON'。これが私のコードです:

<cfcomponent>
    <cffunction name="getData" access="remote" output="true" returnformat="JSON">
        <cfset fncResults = StructNew()>

        <cfif myFile = true>
            <cfoutput query="myData">
                //Here I organize my data
            </cfoutput>

            <cfset getList = arrayToList(buffer,crlf)/> 
            <cfset fncResults.status = "200">
            <cfset fncResults.fileData = #getList#>
        <cfelse>
            <cfset fncResults.status = "400">
            <cfset fncResults.message = "The file was not properly uploaded.">
        </cfif>

        <cfreturn fncResults>
    </cffunction>
</cfcomponent>

ここに私のJavaScriptがあります:

function getFile(){
  $.ajax({
    type: 'POST',
    url: 'Components/test.cfc?method=getData',
    data: new FormData($('#myForm')[0]),
    cache: false,
    dataType: 'json'
 }).done(function(obj){
    if(obj.STATUS === 200){
        return obj.FILEDATA;
    }else{
        return false;
    }
 }).fail(function(jqXHR, textStatus, errorThrown){
    alert(errorThrown);
 });
}
4

1 に答える 1

0

開発環境と本番環境をできる限り同じに保つことがベスト プラクティスです。コードを本番環境にプッシュするときに、この種の「落とし穴」が減ります。

ColdFusion 10's JSON serializer/deserializer is vastly improved over CF9's. If you're working with a lot of JSON, then upgrading to CF10 on Production is a good idea. Until that's a possibility, using a separate serializer can help.

I suspect the "json cfc" that @KevinB mentioned Ben Nadel's JsonSerializer.cfc. It's available on Github (forked version, with a few extra features) at https://github.com/kevindb/JsonSerializer.cfc

于 2016-12-09T21:21:58.230 に答える