问题描述
我有一个需要 async:false
和 beforeSend
函数才能协同工作的 AJAX。我必须在 AJAX 调用之前启用加载微调器并在 AJAX 完成后停止微调器,但我也将 async:false
设置为 AJAX 完成后的下一步。我正在使用 jQuery Step Wizard
这是我当前的脚本。
ajax_success = false;
$.ajax({
url : url,type : 'POST',data : regist_data,cache : false,contentType : false,processData : false,async : false,dataType : 'JSON',beforeSend : function() {
$("#loading-div").removeAttr("class");
$("#loading-div").addClass("overlay overlay-on");
}
})
.done(function(data){
$("#loading-div").removeAttr("class");
$("#loading-div").addClass("overlay overlay-off");
if(data.insert_status == "success"){
toastr.success("Your registration is successfully done",'Congratulations... ');
ajax_success = true;
}else{
toastr.error("Please contact the Administrator",'Fatal error... ');
ajax_success = false;
return false;
}
})
.fail(function(jqXHR,textStatus,errorThrown){
$("#loading-div").removeAttr("class");
$("#loading-div").addClass("overlay overlay-off");
toastr.error(errorThrown,'Error... ');
ajax_success = false;
return false
});
if(ajax_success){ //I have put this condition inside AJAX done and outside AJAX call. Still same result
return true;
}
else{
toastr.error("Fail");
return false;
}
如果我删除 async:false
,加载程序正在运行,toastr.success
将被执行。但是,它不会移动到向导的下一步。
如果我添加 async:false
,加载程序将无法工作,但会进入下一步。
如何使它都正常工作?非常感谢任何帮助或其他方法
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)