4

ファイルを ColdFusion アプリにアップロードするために JavaScript プラグインを使用しています。AJAX を使用してサーバーと通信し、JSON を返します。(かなり標準的) 私は 2 つの cfm スクリプトを持っています。

最初のファイルには、プラグインのフォームが含まれています。

2 つ目は、実際のアップロード、削除、ファイル リストの返却などを処理します。

2 番目のスクリプトは、プラグインが処理するプレーン テキストとして JSON を返します。

2 番目のスクリプトは HTML をレンダリングせず、最初のスクリプトに返された JSON は js プラグインに直接送られます。

すべてが実際に完全に機能します。ファイルをアップロードしてファイルリストを返すようになりました。

私の問題: 2 番目のスクリプトのコードが複雑になるにつれて、デバッグが難しくなります。

コードをレンダリングしないため、cfdump は役に立ちません。

何かが機能していない理由を教えてくれるエラー メッセージやその他の情報がない状態で暗闇の中を探し回っています。

私の制限: プラグインは大きくて複雑なので、必要がなければいじりたくありません。そして、それは完全に機能するので、それをいじる必要はありません。問題は私のcfコードです。

また、このプロジェクトの管理エリアへのアクセス権もありません。

しかし、このコードをログに記録またはデバッグする方法が必要です。

私の解決策: 3 番目のファイルに対して cfdump を実行してきましたが、コーディングに半分の時間を費やし、新しいニーズに合わせて cfdump ソリューションを変更するのに半分の時間を費やしているため、これは理想的な解決策とは言えません。また、さまざまな状況を処理できるように cfdump ロガーを進化させています。独自のロガーを作成して車輪を再発明したくはありませんが、コーディングしたいだけです。管理者に AJAX ロガーをインストールしてもらいましたが、ColdFusion ではなく JavaScript をログに記録することを意図していることに気づきませんでした。だからそれもうまくいきません。

ColdFusion for AJAX を使っている人がいることは知っています。この問題を抱えているのは私だけではありません。どんな助けでも大歓迎です。

4

4 に答える 4

3

<cflog>シンプルで強力なタグを忘れないでください。コード内の任意の時点で変数をダンプできます。構造体をダンプする場合は、 を使用serializeJSON(someStruct)して構造体全体 (または構造体に変換されたオブジェクト) をログに表示できます。これを Eclipse/CFBuilder のテール ビューと組み合わせると、非 HTML 生成コードの内部動作のリアルタイム ストリームが得られます。

于 2012-11-20T13:47:07.060 に答える
2

Firefox を使用している場合は、Firebug をインストールします。コンソール タブでは、すべての Ajax リクエストを確認できます。リクエストを展開して [HTML] タブに移動します。「HTML」タブでは、サーバー ページ (2 番目のスクリプト) によって作成された Html テンプレートを確認でき、coldfusion エラーも見つけることができます。Firebug は、Ajax を操作するための優れたツールです。これも役立つことを願っています。

于 2012-11-20T07:49:56.920 に答える
1

HTMLタグがないためにcfdumpが利用できないという考えに興味があります。このコードだけでページを作成しました:

<cfsetting showdebugoutput="no">
<cfset foo = "bar">
<cfdump var="#foo#">

そしてブラウジングしてみると、ブラウザに「バー」という文字が出てきました。

于 2012-11-20T17:56:52.083 に答える
1

スクリプトを理解するために、使用<cftry>してエラーをメールで送信することをお勧めします。<cfmail type="html" ...><cfdump ...

例:

<CFTRY>
    <CFSET thingsmightgowronghere &= "foo" />
    <CFCATCH type="any">
        <CFMAIL from="debug@example.com" to="you@yours.com" subject="#cfcatch.Message#" type="html"><CFDUMP var="#cfcatch#" /></CFMAIL>
    </CFCATCH>
</CFTRY>    

firebug を使用したデバッグも可能ですが、何かを cfdump して firebug で見る場合、cfdump が作成する css/js をクロールするのはそれほど快適ではありません。

于 2012-11-20T11:22:18.933 に答える