私はCF8からCF10への変換に取り組んでいるアプリケーションを持っています。戻ってくるデータがJSONでなければならないリモートCFCのいくつかは、 "//"は返されたデータに先行しています。例えば、ここで返された構造体の出力です:ColdFusion 10 returnformat = "JSON"文字を追加する
//{"SUCCESS":true,"ERRORS":[],"DATA":{"COLUMNS":["AUTHRESULT","SPID","EMAIL","RID"],"DATA":[[true,361541,"[email protected]",""]]}}
CF8サーバー上で同じCFCを介して実行と同じ機能を提供します:
{"ERRORS":[],"SUCCESS":true,"DATA":{"COLUMNS":["AUTHRESULT","SPID","EMAIL","RID"],"DATA":[[true,361541,"[email protected]",""]]}}
CFCプロキシのすべての要求がたreturnformat = "JSONを持っていること" - ただし、proxyCFCまたはproxyCFCから拡張されたCFCのいずれかにSerializeJSON()が呼び出されることはありません。
これを処理する最良の方法は何かわかりません。応答の「//」をトリミングすることは可能ですが、「正しい」とは思われません。これらの機能は私たちのアプリだけでなく、いくつかのリモートアプリケーション(http:// postsを経由しているものもあれば、jQuery Ajax呼び出しを経由しているものもある)のため、CF10の終わりでそれに対処する必要があります。
興味深いことに、それは認識していませんでした。だから、これは本当にそれを安全に保つために呼び出し側ページ/アプリケーション側で処理する必要があります。 – Steve
はい、それが最適でしょう。私はちょっと調べてみましたが、私が参照した管理者設定がColdFusion 9で初めて導入されたようです。ColdFusion 8サーバーでこれが見られなかった理由がわかります。 –
これも簡単なメモです。私はこの作業のjquery ajax側を取得しようと多くの時間を費やしました。最初は、jsonレスポンスから '//'を削除するために、dataFilterと正規表現でajaxSetup()を使用することを提案しました。多くの試行錯誤の後、jqueryのようです。validate()はajaxSetup()を中断させます。これにより、dataFitlerを検証ルールのリモートセクションに配置する必要があります。 – Steve