Dojo xhrget()超时会导致自动页面刷新。如何阻止这种情况?

Dojo xhrget()超时会导致自动页面刷新。如何阻止这种情况?,dojo,timeout,Dojo,Timeout,我有这样的代码——它基本上进行AJAx调用,然后显示对话框。当收到AJAX调用的响应时,对话框将更新结果或错误。在这里之前一切都很好。但是,如果AJAX调用超时,对话框中会显示错误消息,然后它会立即刷新页面(并且不会触发对话框的关闭操作)。不确定在超时情况下如何停止自动刷新页面。非常感谢您的任何建议或意见。谢谢 var mainNode = dojo.create("div",{id:"mainNode"}); var brNode = dojo.create(

我有这样的代码——它基本上进行AJAx调用,然后显示对话框。当收到AJAX调用的响应时,对话框将更新结果或错误。在这里之前一切都很好。但是,如果AJAX调用超时,对话框中会显示错误消息,然后它会立即刷新页面(并且不会触发对话框的关闭操作)。不确定在超时情况下如何停止自动刷新页面。非常感谢您的任何建议或意见。谢谢

        var mainNode = dojo.create("div",{id:"mainNode"});

        var brNode = dojo.create("div",{innerHTML:"<br><br>"})              
        var resultNode = dojo.create("div", {id:"resultNode",innerHTML:"Copying..."});
        var infoNode = dojo.create("div", {id:"infoNode"});

        dojo.style(mainNode, "width","700px");
        dojo.style(mainNode, "height","auto");
        mainNode.appendChild(infoNode);
        mainNode.appendChild(brNode);
        mainNode.appendChild(resultNode);


        var timeoutStr = nlsVar.FILEPUB_EXTENSION.TIMEOUT;
        var timeoutVal = parseInt(timeoutStr);
        console.log('timeout value ' + timeoutVal);
        dojo.xhrGet({ 
            // The following URL must match that used to test the server.
            url: "/BpFilePublisher/bpfilepub", 
            handleAs: "json",
            timeout: timeoutVal, // Time in milliseconds
            preventCache: true,

            // The LOAD function will be called on a successful response.
            load: function(response, ioArgs) { //
                  var str = json.jsonBeanStringify(response);
                  var infoNode = dojo.byId("infoNode");
                  infoNode.innerHTML = response[0].info;
                  var resultNode = dojo.byId("resultNode");
                  resultNode.innerHTML = response[0].result; 
                  dojo.style(resultNode, "backgroundColor", "lightgreen");
                  dojo.style(resultNode, "border", "1px green");
            },

            // The ERROR function will be called in an error case.
            error: function(error, ioArgs) { // 
                 console.log('error' + error);
                 console.log('error.responseText' + error.responseText);
                 var resultNode = dojo.byId("resultNode");              
                 if ( error.responseText)
                   resultNode.innerHTML = error.responseText;
                 else {
                   resultNode.innerHTML = 'Timeout occured. Please try again';
                   isTimeout = true;
                   }
                  dojo.style(resultNode, "backgroundColor", "red"); 
                  dojo.style(resultNode, "border", "1px");      

              },

            // Input parameters to the servlet
            content: {fileName: fileName, fileId: fileId, srcCommUuid: srcCommId, bpCommId: bpCommUuid, action:action }
        });

        var dialogBundle = lconn.core.DialogUtil.popupForm(
            nlsVar.FILEPUB_EXTENSION.COPYINTERNAL_DIALOG_TITLE,
            mainNode,
            '',
            nlsVar.FILEPUB_EXTENSION.CANCEL_BUTTON_TITLE,
            function() { 

            },
            function() {
                 dialogBundle.hide();
                 location.reload();
            }
        );

        dojo.addClass(dialogBundle._dialog.lotusSubmitNode, "lotusHidden");
        dojo.addClass(dialogBundle._dialog.lotusBorderNode, "mydialog");
    }
});
var mainNode=dojo.create(“div”,{id:“mainNode”});
var brNode=dojo.create(“div”,{innerHTML:

”}) var resultNode=dojo.create(“div”,{id:“resultNode”,innerHTML:“Copying…”); var infoNode=dojo.create(“div”,{id:“infoNode”}); dojo.style(主节点,“宽度”,“700px”); 样式(主节点,“高度”、“自动”); mainNode.appendChild(infoNode); mainNode.appendChild(brNode); mainNode.appendChild(resultNode); var timeoutst=nlsVar.FILEPUB_EXTENSION.TIMEOUT; var timeoutVal=parseInt(timeouttr); log('timeout value'+timeoutVal); dojo.xhrGet({ //以下URL必须与用于测试服务器的URL匹配。 url:“/BpFilePublisher/bpfilepub”, handleAs:“json”, timeout:timeoutVal,//以毫秒为单位的时间 对,, //成功响应时将调用LOAD函数。 加载:函数(响应,ioArgs){// var str=json.jsonBeanStringify(响应); var infoNode=dojo.byId(“infoNode”); infoNode.innerHTML=响应[0].info; var resultNode=dojo.byId(“resultNode”); resultNode.innerHTML=响应[0]。结果; dojo.style(resultNode,“backgroundColor”,“lightgreen”); dojo.style(结果节点,“边框”,“1px绿色”); }, //错误情况下将调用ERROR函数。 错误:函数(错误,ioArgs){// console.log('error'+error); log('error.responseText'+error.responseText'); var resultNode=dojo.byId(“resultNode”); if(error.responseText) resultNode.innerHTML=error.responseText; 否则{ resultNode.innerHTML='发生超时。请重试'; isTimeout=true; } dojo.style(resultNode,“backgroundColor”,“red”); dojo.style(resultNode,“border”,“1px”); }, //向servlet输入参数 内容:{fileName:fileName,fileId:fileId,srccomuuid:srccomid,bpCommId:bpCommUuid,action:action} }); var dialogBundle=lconn.core.DialogUtil.popupForm( nlsVar.FILEPUB_扩展名.COPYINTERNAL_对话框_标题, 主节点, '', nlsVar.FILEPUB\u扩展名。取消按钮\u标题, 函数(){ }, 函数(){ dialogBundle.hide(); location.reload(); } ); addClass(dialogBundle.\u dialog.lotusSubmitNode,“lotusHidden”); addClass(dialogBundle.\u dialog.lotusBorderNode,“mydialog”); } });
AJAX超时不应导致页面刷新。也许是其他原因造成的。可能是
location.reload()