为什么返回值是null的

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,求教什么问题

6个回答

楼上说的对,在success里面返回才行 ajax异步加载数据async : false 换成 async : true;
或者增加全局的 $.ajaxSetup({
async : false
});

你知道后台给的数据是什么格式的吗。你直接把dataType:‘json’,这样子后台给必须给json格式的数据,否则获取不到。

试一试把 var msgjson=null; 后面的 = null; 去掉

ajax异步加载数据,执行顺序的问题。ajax的异步响应是在最后才返回的,所以打印时,还没响应,因此赋值也是失败的。
把 async : false 换成 async : true;

楼上说的对,在success里面返回才行

ajax是异步的,当你下面需要使用msgjson时,还没有执行到success;
第一种方法是ajax使用同步,第二种方法是将需要使用到msgjson的方法放到success里面调用。

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!