ExtJS Ajax请求超时对Internet Explorer没有影响



我使用的是ExtJS 3.4。我有一个长时间运行的异步进程,我需要等待它完成。它适用于Firefox,但Internet Explorer不会等待。我该如何解决这个问题?

以下是我的客户端代码:

function SaveUser(form, myDataObject, url) {
if (form.isValid()) {
StatusMessage.show('Please wait. New User Registrations may take up to one minute to complete.');
Ext.Ajax.request(
{
url: url,
method: 'POST',
timeout: 30000,
params: myDataObject,
success: function (result, request) {
StatusMessage.hide();
formSubmit = Ext.util.JSON.decode(result.responseText);
if (!formSubmit.success) {
Ext.Msg.show({
title: 'Error',
msg: formSubmit.msg,
buttons: Ext.Msg.OK,
icon: Ext.MessageBox.WARNING,
minWidth: 390,
maxWidth: 390,
closable: false
});                 
} else {
ShowRegistered();
}
},
failure: function (result, request) {
StatusMessage.hide();
ShowServerError(result);
}
});
} else {
ShowValidationErrors();
}
}

以下是我的服务器端代码:

CreateUserInActiveDirectory(user);
//Internet Explorer Time Out immediately instead of waiting here
System.Threading.Thread.Sleep(20000);
AuthenticateUser(user);

这不是extjs问题,而是IE问题。事实上,30000是extjs的默认超时。

大多数情况下,这是因为全局IE全局超时设置。查看ReceiveTimeout键的HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings,如果存在,则删除它,如果不创建以毫秒为单位的值。

如果这个问题是新出现的,以前从未发生过,请检查您最近安装的最新软件产品,有几个产品设置了这个值。

最新更新