我创建了一个通用函数来处理对后端代码的三个简单的ajax请求。我只留下一个问题,那就是systemName" AD"返回代码0,然后根本不应该触发以下两个函数.. 但看起来它运行函数并且在测试后直接测试条件sADsuccess = 1,并且剂量等待函数设置变量。 所以我的问题是:我怎样才能以更好的方式写出来?
var sADsuccess=1;
$("#frmPwdChg").submit(function(e) {
var formzData = $("#frmPwdChg").serialize();
ChangeSystemPwd('UPDATE/AD/USER/PASSWORD/',formzData,'AD',1,0,0)
if(sADsuccess=1){
ChangeSystemPwd('UPDATE/Cosmic/PASSWORD/',formzData,'Cosmic',0,0,0);
ChangeSystemPwd('UPDATE/Imprivata/PASSWORD/',formzData,'Imprivata',0,1,1);
}
else{
$("#btnPwdChg").removeClass("loading");
$("#btnPwdRes").addClass("hidden");
$("#btnLogout").removeClass("hidden");
$("#frmPwdChg")[0].reset();
}
e.preventDefault(); // avoid to execute the actual submit of the form.
});
function ChangeSystemPwd(APIurl,sFormData,sSystemName,loadStart,loadEnd,bEmptyForm){
var url = sUrl + APIurl
$("#btnPwdChg").addClass("loading");
$.getJSON({
type: "POST",
url: url,
data: sFormData,
success: function(response) //Om Ajax anropet lyckas
{
var sMessage=response[0].message;
var sCode=response[0].code
if(sCode===1) {
showGreen(sSystemName,sMessage)
sessionStorage.setItem(sSystemName, 'success');
}
else if(sCode===0) {
showRed(sSystemName,sMessage);
sessionStorage.setItem(sSystemName, 'failure');
if(sSystemName='AD'){
alert('AD')
sADsuccess=0;
}
}
else if(sCode===-1){
//anropet kom tillbaka som att det inte fanns någon användare. Visa ingenting
sessionStorage.setItem(sSystemName, 'no-user');
}
},
error: function(xhr,response){ //Om ajax anropet inte lyckas, hämta status och skriv ut ett meddelande
showErr(xhr,response,'#errResponse')
},
complete: function(xhr,data){
if (loadEnd==1){
$("#btnPwdChg").removeClass("loading"),$("#btnPwdRes").addClass("hidden"),$("#btnLogout").removeClass("hidden");
}
if (bEmptyForm==1){
$("#frmPwdChg")[0].reset();
}
}
});
}