ExtJS Ajax 请求超时对 Internet Explorer 没有影响
Posted
技术标签:
【中文标题】ExtJS Ajax 请求超时对 Internet Explorer 没有影响【英文标题】:ExtJS Ajax Request Timeout Has No Affect with Internet Explorer 【发布时间】:2012-12-10 15:47:02 【问题描述】:我正在使用 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);
【问题讨论】:
【参考方案1】:这不是 extjs 的问题,而是 IE 的问题。其实 30000 是 extjs 的默认超时时间。
大多数时候这是因为全局 IE 全局超时设置。查看 HKCU\Software\Microsoft\Windows\CurrentVersion\Internet Settings 中的 ReceiveTimeout 键,如果存在则将其删除,如果没有使用值创建它以毫秒为单位。
如果这个问题是新的并且以前从未发生过,请检查您最近安装的最新软件产品,有几个设置了这个值。
【讨论】:
谢谢。我多么讨厌 Internet Explorer。以上是关于ExtJS Ajax 请求超时对 Internet Explorer 没有影响的主要内容,如果未能解决你的问题,请参考以下文章