最近项目中偶尔用到了jQuery的ajax请求,需要从后端判断该会员是否存在,然后在返回至前端页面提示错误信息,代码如下:
$.ajax({
url: "../sessionActivity/selectPartyAccountByPartyIdAndAcoountNumber?random=" + Math.random(),
type: 'post',
dataType: 'json',
data: data1,
success: function (data) {
console.log(data)
if (data.result=="error") {
$.messager.alert("警告", data.msg, "error");
return false;
}
}
});
省略其他判断
代码中明明已经return了,却依然走下面的判断了,后来查询得知
jquery的ajax方法;在success中使用return;来结束程序的时候,结束的只是success这个方法,也就是说success中的return的作用范围只是success;
我们可以采用在ajax方法体外通过全局变量isOver的值来决定js函数是否return,将上面的代码改造如下:
var valid = true;
$.ajax({
url: "../sessionActivity/selectPartyAccountByPartyIdAndAcoountNumber?random=" + Math.random(),
type: 'post',
dataType: 'json',
data: data1,
async: false,
success: function (data) {
console.log(data)
if (data.result=="error") {
$.messager.alert("警告", data.msg, "error");
valid = false;
return valid;
}
}
});
if(!valid){
return ;
}
但是有一点必须要注意:ajax方法的async: false,一定要是false,经过以上代码改造就可以了。