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

时间:2012-12-10 15:47:03

标签: javascript ajax jquery extjs extjs3

我正在使用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 个答案:

答案 0 :(得分:1)

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

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

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