function sqlhelper(datas)
{
var msgjson=null;
mui.ajax({
url : 'http://192.168.30.123:32100/login.aspx',
data : datas,
dataType: 'json',
type : 'get',
timeout : 10000,
async : false,
success : function(msg){
alert(JSON.stringify(msg));
msgjson=msg;
},
error : function(xhr,type,errorThrown)
{
return null;
}
});
return msgjson;
}
success里的msg是能够成功获取数据的,但是赋值给msgjson后整个函数的返回值就是null,求教什么问题
试一试把 var msgjson=null; 后面的 = null; 去掉
ajax异步加载数据,执行顺序的问题。ajax的异步响应是在最后才返回的,所以打印时,还没响应,因此赋值也是失败的。
把 async : false 换成 async : true;
楼上说的对,在success里面返回才行
楼上说的对,在success里面返回才行 ajax异步加载数据async : false 换成 async : true;
或者增加全局的 $.ajaxSetup({
async : false
});
你知道后台给的数据是什么格式的吗。你直接把dataType:‘json’,这样子后台给必须给json格式的数据,否则获取不到。
ajax是异步的,当你下面需要使用msgjson时,还没有执行到success;
第一种方法是ajax使用同步,第二种方法是将需要使用到msgjson的方法放到success里面调用。