jquery ajax get 获取返回值是undefined解决方案jquery ajax get 获取返回值是undefined解决方案

jquery ajax get 获取返回值是undefined解决方案

正常情况下,由于jquery的 . a j a x ( ) .post()和$.get()方法获取到的数据若想返回给js函数,会发现返回值是undefined,这是由于ajax默认是异步请求数据的,换句话说,你想获取的变量值还在请求中,这时候你读取这个变量值就只能是undefined了,所以需要加入一行async:false,要求ajax是同步执行。如下例程:

//ajax获取数据
function smsverify(){
    var check_res;
    var ajaxurl = APP_ROOT+"/index.php";
    var query = new Object();
    $.ajax({ 
        async:false,
        url: ajaxurl,
        data:query,
        type: "POST",
        dataType: "json",
        success: function(result){
            check_res=result;
        },error:function(){}
    });
    return check_res;    
}

核心是加入 async:false,如果你没有加入这一行,你会发现函数返回的undefined

async作用

async. 默认是 true,即为异步方式,$.ajax执行后,会继续执行ajax后面的脚本,直到服务器端返回数据后,触发$.ajax里的success方法,这时候执行的是两个线程。

async 设置为 false,则所有的请求均为同步请求,在没有返回值之前,同步请求将锁住浏览器,用户其它操作必须等待请求完成才可以执行。

参考:https://www.cnblogs.com/hnbiao/p/6208277.html

猜你喜欢

转载自blog.csdn.net/c0411034/article/details/80826830