因为页面要返回好几次后台,为了减少代码,将ajax封装成了一个方法,但后台返回数据不同,对返回数据有不同的操作,所以就需要将ajax返回数据作为函数返回值,开始代码如下:
function xxx(data,url){
var result;
$.ajax({
type:"post",
url:url,
data:data,
contentType:"application/x-www-form-urlencoded;charset:utf-8",
success:function(data){
result = data;
}
});
return result;
}
以上面的代码在success里result有值,但是return的就是未定义的undefined,这是ajax异步导致的问题,只要在ajax里加上async:false,将异步改为同步就可以了,如下:
$.ajax({
type:"post",
url:url,
data:data,
async:false,
contentType:"application/x-www-form-urlencoded;charset:utf-8",
success:function(data){
result = data;
}
});