ここで再び Ext JS を使用します。
アプリの Web サーバーに画像を送信するファイル アップロード (Ext.form.field.File) フィールドがあるとします。
フォームの送信時に内部サーバー エラー (ステータス コード = 500) が発生するたびに (つまり、投稿されたファイルが Web サーバーの最大要求長よりも大きい)、Ext はブラウザーのコンソールに表示される例外をスローします。
次のように Ext.Error.handle をオーバーライドすると、すぐにエラーをキャッチできます。
<!-- language: js -->
Ext.Error.handle = function (err) {
switch (err.sourceClass) {
case "Ext.JSON":
{
var arr = err.msg.split('\n');
var msg = arr[0];
arr.shift();
var serverMsg = arr.join('\n');
LogManager.error(msg);
return true;
}
default:
{
if (err.msg) {
LogManager.error(err.msg);
return true;
}
}
return false;
}
}
問題は、エラーをキャッチするかどうかに関係なく、Ext が作成するモーダル プログレス バーが表示されたままになります。つまり、アプリケーションが完全にロックされます。
質問: Ext にフォームの失敗のコールバックを発生させ、プログレス バーを適切な方法で閉じるにはどうすればよいですか?