javascript中使用ajax异步验证数据库后方法return true时总是返回undefined

在javascript函数中使用return true是可以返回true的,但是如果avascript函数中使用了ajax方式发送异步请求

函数的话,return true 就不会返回true,而是返回的undefined。网上查了一下原因是因为是异步方法的原因。

我的解决办法是在异步方法中定义一个变量来存储异步方法的返回值,如果异步方法返回值为true,则将true赋值给

该变量,在方法最后return 该变量即可。

function ajaxGetSpkStatus(icuuid){
var exist = false;
$.ajax( {
cache : false,
type : 'POST',
async : false,
url : "bill",
data : {
operation : 35,
spkUuid : icuuid
},
success : function(data) {
if(!data.flag){
alert("该卡已被禁用,请更换审批卡")
return false;
}else{
exist = true;//ajax内部return true 总是 return undefined。所以将值赋给exist变量,在ajax方法外部return
}
},
error : function(x, y, z) {
alert("很遗憾,校验卡状态失败,请稍后重试")
return false;
},
dataType : 'json'
}); 
return exist;
}

原文地址:https://www.cnblogs.com/yjtx/p/4429626.html