之前一直想不明白ajax要return数据必须是同步状态才可以。
$.ajax({
url:Url,
type:GetType,
async:true,
data:Data,
dataType:DataType,
success:function(res){
return res;
},
error:function(res){
}
});
但是这样我设置async:false就毫无意义了,毕竟有时候有这个需求嘛,要异步的又可以拿到返回的数据,我们可以这样写:
function AjaxData(Url,GetType,Async,Data,DataType,CalBack){
$.ajax({
url:Url,
type:GetType,
async:Async,
data:Data,
dataType:DataType,
success:function(res){
CalBack(res);
},
error:function(res){
tipsMsg("topMsg","网络/服务器错误","",2000);
}
});
}
我们可以将Ajax封装成一个方法,所有的参数都是传过来的,这样用着就比较灵活。然后调用如下:
AjaxData("../ajaxurl","POST",false,{name:1,pass:111},"json",function(res){
//这里写得到数据之后的操作代码。
});
总结:
我们可以看到最后一个参数其实是一个函数,我们在得到数据之后将数据以参数的形式返还给calBack函数,然后由calBack来处理数据展示或者其他操作,这样写的话无论如何我们都可以得到数据了,关键是比较简洁而且代码重用性很高。