今天发现某一个项目的页面在点击按钮时,ajax的http的请求产生了一个这样的问题
Provisional headers are shown
Accept:
application/json, text/javascript, /; q=0.01
Content-Type:
application/x-www-form-urlencoded; charset=UTF-8
Origin:
http://10.12.20.81:8080
Referer:
http://10.12.20.81:8080/oyun/a/formengine/ravFormInst/openForm?formId=cbb13c17ef8d4656b18abfb3436bbb9e&dataId=ef7fb5e040884ef59ab5c91db42fcc29&openTarget=tab×tamp=1548821851774&flowstatus=待受理
User-Agent:
Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36
X-Requested-With:
XMLHttpRequest
请求能够正常的进到后台,但是却无法正常返回。经过一通上网搜索,发现这个问题基本都是因为网页跳转过快,使得ajax请求无法正常结束导致的。因此我在触发下一个请求前,加了js的setTimeout方法,顺利解决!
$.ajax({
url : "${ctx}/formengine/ravFormInst/save",
data:$('#'+_mainFormId).serialize(),
dataType : "json",
type:"post",
success : function(data){
var dataId=data.body.dataId;
if(data.success){
leado.ravenclaw.form.afterSuccessImpl(_formId,dataId,data);
if(alertMsg){
jp.success(alertMsg);
}else{
jp.success('操作成功');
}
if(_openTarget=='tab'){
setTimeout(function () {
leado.common.tab.close();
_parentPageCtx.gridObj.bootstrapTable('refresh');
}, 2000);
}else{
location.reload();//直接从外部打开之类
}
}else{
jp.error(data.msg);
}
}
});