3

経由で cfc を呼び出すために jQuery を使用している CF アプリケーションがあります$.post。CFC でエラー処理を行っていますが、次の例をキャッチするのはどうでしょうか。

フロン:

<cfcomponent>
    <cffunction name="function_1" access="remote" returnformat="json">
        ...
    </cffunction>
    ....
</cfcomponent>

呼び出しページ:

<html>
    <head>...</head>
    <body>...
        <script>
            $.post("mycfc.cfc",{
                method: "functio_1", //notice the misspelling
                ....
        </script>
    </body>
</html>

これにより、JavaScript エラーは発生せず、200 応答が返されます。

エラーは次のようになります。

The method functio_1 was not found in component E:\inetpub\wwwroot\mycfc.cfc. Ensure that the method is defined, and that it is spelled correctly. <br>The error occurred on line -1. 

これは基本的な例であり、簡単に修正できることは理解していますが、同様のことが起こる可能性のある例は他にもたくさんあると確信しています。

何かご意見は?

4

1 に答える 1

7

欠落している関数を処理するには、Ben Nadel の onMissingMethod() 関数の説明を参照してください http://www.bennadel.com/blog/868-Learning-ColdFusion-8-OnMissingMethod-Event-Handler.htm

この関数は、すべてのサブクラス、つまり cfc によって拡張できる親クラスにいつでも配置できます。

たとえば、この onMissingMethod() 実装で object.cfc を使用すると、すべての cfc でそれを拡張できます。

同時に、ajax 呼び出しで他のエラーを処理したい場合は、任意の ajax 呼び出しに対して cfc から標準の戻り型構造を作成し、それにステータス フィールドを追加できます。そのため、cfc でエラーが発生した場合はステータスを失敗に設定し、問題が解決していない場合はステータスを合格に設定できます。これは後で ajax リターン関数で処理できます。

于 2013-09-30T15:19:58.770 に答える