2

リクエストがxhrPostを介してサーバーに送信され、サーバーがリクエストを処理するためにさらに多くの情報が必要である(たとえば、変数が欠落している)ことを検出した場合、リクエストが完全に処理されていない可能性があることを通知する応答がクライアントに返送され、このメッセージはダイアログボックスに表示されます。

サーバーからHTTP202ステータスコードを送信していましたが、これは正しくないと思います。ロード関数で処理し、このメッセージがダイアログボックスに表示されました。しかし、HTTPエラーコード(例:400)で応答すると、エラーはコンソール(注:この場合、メッセージはエラー関数で処理されます)とダイアログボックスに表示されます。

それを行うための最良かつ正しい方法は何ですか?

4

1 に答える 1

0

これは、成功ハンドラーではなく、ロードハンドラーと呼ばれることに注意してください。

ロードハンダーは、有効で適切にフォーマットされた応答用です。これらには、サーバー側アプリによって生成された、成功、失敗、またはその間の何かを示すさまざまなステータスコードを含めることができます。

エラーはそれだけです。リクエストを処理しようとしているときにサーバーが爆発し、返されるものはおそらくウィジェットが期待するように作成されたものではありません。このため、アプリ全体で同じエラーハンドラーを使用することをお勧めします。

dojoのドキュメントには次のように記載されています。

xhrGet呼び出しが失敗することがあります。多くの場合、これらは404エラーまたは500などのサーバーエラーです。エラーパラメータは、エラーが発生したときにのみ呼び出される別のコールバック関数です。これにより、エラー状態をチェックするためにロード関数に多くのロジックを追加しなくても、エラーが発生したときに何が起こるかを制御できます。エラー関数に渡される最初のパラメーターは、失敗が何であったかを示すJavaScriptErrorオブジェクトです。道場ドキュメント

于 2012-08-26T19:59:40.970 に答える