編集内側から動作しません。重要な部分は、私は、AJAXを介したCFCメソッドを呼んでいるということかもしれません...投げるエラー - cflocationのはONERROR()
私は介して、CFCメソッドを呼んでいますajax:jqgrid表で使用するデータを戻します。 cfcのメソッドの中で、私はエラー処理を設定しようとしているので、ユーザーに問題がないことを知らせる代わりに、ルートディレクトリのerror.cfmとして定義されているエラーページにユーザーを送ります、そして今はちょうどいくつかの定型的なHTMLが含まれています。 インサイドApplication.cfcのは、私は同じように私のonError()メソッドを定義しました:のcfcatch内部かどうか
<cffunction name="onError" returnType="void" output="false" >
<cfargument name="exception" required="true" >
<cfargument name="eventname" type="string" required="true" >
<cfmail to="#application.REGISTRATION_NOTIFICATION#" from="outgoing address" subject="Error">
</cfmail>
<cflocation url="../index.cfm?file=error.cfm" addToken="false" />
私は、CFCのメソッドからのエラーをスローし、Chromeはことを報告してI実際にはSTATUS = 200でindex.cfmに送信され、その応答はerror.cfmテンプレート内にあるhtmlを正しく示しています。ただし、ブラウザは実際にページに移動しません。
事は、私が
<cflocation url="index.cfm?file=error.cfm" addToken="false" />
に場所を変更し、CFCを呼び出したページから、代わりのCFCからエラーを投げる場合に予想されるとして、cflocationのは、仕事をする、です。また、cfinvokeを使用して元のページからcfcを呼び出す場合、ajax呼び出しを使用する代わりに、cflocationが機能します。だからこれはCF内から呼び出すのではなく、cfcをajaxで呼び出しているという事実とは関係があります。では、私はここで何が欠けていますか?
P.S.これはChrome、IE、およびFFで発生します。私はCF 9.0.1をホットフィックスと一緒に使っていますが、フレームワークはありません。ここではChromeの[ネットワーク]ペインからの出力のサブセットが参照するページについて、ヘッダには、です:
リクエストURLます:http://localhost/sitename/cfc/method.cfc
リクエスト方法:
をGETステータスコード:302
リクエストヘッダを表示一時的移動元
受け入れ:アプリケーション/ JSON、テキスト/ジャバスクリプト、/。 Q = 0.01
のAccept-文字セットを:ISO-8859-1、UTF-8、Q = 0.7、*; Q = 0.3
受け入れ-エンコーディング:gzipでは、収縮、SDCH
受け入れ言語:EN-US、EN; Q = 0.8
接続:キープアライブ
クッキー:CFID = 11801; CFTOKEN = 90037336; ?LASTVISIT = 1327852981759
ホスト:localhostの
リファラーます:http://localhost/sitename/index.cfmファイル= referringfile.cfm
のUser-Agent:Mozillaの/ 5.0(Windows NTの6.1; WOW64 )AppleWebKit/535.7 (GeckoのようなKHTML)Chrome/16.0.912.77 Safari/535。7
X-要求-WITH:getPartNumbers
フィルタ:{ "ページ" のXMLHttpRequest
クエリ文字列パラメータは、URLエンコードさ
方法ビュー1、 "sessionSQL": "1327834969791"、 "filterRows":[{ "FIELD_NAME": "PART_NUMBER"、 "オペランド": "等しい"、 "FIELD_VALUE": "11 06 01"}]}
_search:偽
ND:1327835014639
行:100
ページ:1
SIDX:PART_NUMBER
SORD:DESC
レスポンスヘッダのソースを表示
のContent-Type:テキスト/ html;文字セット= UTF-8
日:日、2012年1月29日は午前11時03分34秒GMT
場所:../ index.cfmにファイル= error.cfm
永続-AUTH:?本当
サーバー:マイクロソフト-IIS/7.5
のSet-Cookie:LASTVISIT = 1327853014657;期限が切れる=金、27 - 7月 - 2012年11時03分34秒 GMT;パス=/
転送 - エンコード:チュンケD
X-パワード・バイ:ASP.NET
そしてerror.cfmページ用:
リクエストURLます。http:?//localhost/sitename/index.cfmファイル= error.cfm
リクエスト方法:GET
ステータスコード:200 OK
リクエストヘッダービューソース
受諾:application/json、text/javascript、/; Q = 0.01
のAccept-文字セットを:ISO-8859-1、UTF-8、Q = 0.7、*; Q = 0.3
受け入れ-エンコーディング:gzipでは、収縮、SDCH
受け入れ言語:en-US、en; q = 0。8
承認:ネゴシエート blahblahblahblah
接続:キープアライブ
クッキー:CFID = 11801; CFTOKEN = 90037336; LASTVISIT = 1327716554490
ホスト:localhostの
リファラーます。http:?//localhost/sitename/index.cfmファイル=ファイル名/ filename.cfm &コンフィグ=ファイル名
のUser-Agent:Mozillaの/ 5.0 (Windows NTの6.1; WOW64)のAppleWebKit/535.7(KHTML、ヤモリなど)クローム/ 16.0.912.77サファリ/ 535.7
X-要求-付:XMLHttpRequestを
クエリ文字列パラメータは、URLが
をエンコード見ますファイル:error.cfm
レスポンスヘッダビューソース
のContent-Type:text/htmlの。文字セット= UTF-8日付:金、2012年1月27日午前21時09分14秒
GMT永続-AUTH:真のサーバー:マイクロソフト-IIS/7.5
のSet-Cookie:LASTVISIT = 1327716554533は; =水を満了し、 25月 - 2012午前21時09分14秒GMT;パス=/
転送エンコード:ASP.NET
お願い:Google Chromeでは、メニュー(レンチ)に移動して、[ツール] - > [デベロッパーツール]を選択してください。ペインがページの下に開きます。 3番目のタブ(ネットワーク)をクリックし、CFC内でエラーをスローする場所でテストを再実行します。ネットワークアクティビティのスクリーンショットを作成し、質問に追加します。 –
注目されていますが、どのバージョンとどのような種類のCFを明確にしてくださいか? Abode、Railo、Blue Dragonなど、他の人々がより多くの洞察力を持っている可能性があります。第二に、位置を結んでいるurl = "/ index.cfm?file = error.cfm"はうまくいきましたか? – NullyB
リダイレクトonErrorを持つことは悪い考えです。あなたは無限ループのために自分自身を設定しています。 application.cfc/application.cfmやリダイレクト先のファイルに何か問題が生じた場合、サイクルは無期限に繰り返されます。代わりに、この運命を避けるためにエラーテンプレートを含めるべきです。このファイルにエラーが発生したときに生成されるべきHTMLのすべてが必要です。 –