在前端ajax代码中,遇到一个问题 :遮罩层(showMask)总是在执行完所有代码后才显示,或着是压根显示不出来; 原来是 异步提交 问题一定要注意
改之前 ajax如下:
if(Is_Login()){ showMask("#mask", ".copy_div"); $.ajax({ type: "post", async: true, url: url_98 + "FileServlet.do", xhrFields: { withCredentials: true }, crossDomain: true, data: { "method":"cmpPrint", "yydh": yydh, "copy": "1" } }).done(function (data) { closeMask("#mask",".copy_div"); console.log("cmpPrint:" + data); var json = JSON.parse(data); //*********获取地址 copyPDF = json.path; //pdf地址 var aux = document.createElement("input"); aux.setAttribute("value", copyPDF); document.body.appendChild(aux); aux.select(); document.execCommand("copy"); document.body.removeChild(aux); Toast("复制成功", 3000); //alert("复制成功!"); //*********获取地址 if(json.status == "ok"){ //阻止事件冒泡 stopBubble(event); }else{ Toast("系统错误,请联系管理员", 3000); stopBubble(event); } }).fail(function (data) { closeMask("#mask", ".loginLoad"); showMask("#mask", ".errorDiv"); $(".errorDiv>p").text("抱歉,服务器错误"); $(".alertImg").attr("src", "images/alert.png"); //点击提示框关闭按钮 $(".closeBtn").click(function () { //关闭遮罩层和提示框 closeMask("#mask", ".errorDiv"); closeMask("#mask", ".loginLoad"); }); }); }
把 同步提交 改作 异步提交 即可。