在这里,我们再次使用 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 触发表单的失败回调并以愉快的方式关闭进度条?