ajax post 获取数据,并传递出去

用 ajax post 数据,把返回的数据以值的方式返回到上一级

function userdata(){
    var username = getName('1');
    return username;
}
function getName(id) {
    var name = "";
    $.ajax({
        url: "/GetName.json",
        method: "POST",
        dataType: "json",
        data: {userId: id},
        success: function(result){
            if(result.code != 200){
                alert(result.data.message);
                return;
            }
            name = result.data.name;
        },
        error: function(Xhr){
           alert("出现未知错误,请重试或联系管理员");
        }
    });
    return name;
}

传递出去后 userdata()获得的值一直是 undefined

将 ajax 改为同步执行。

function userdata(){
    var username = getName('1');
    return username;
}
function getName(id) {
    var name = "";
    $.ajax({
        url: "/GetName.json",
        method: "POST",
        dataType: "json",
        data: {userId: id},
        async:false,//这里选择异步为 false ,那么这个程序执行到这里的时候会暂停,等待
                    //数据加载完成后才继续执行
        success: function(result){
            if(result.code != 200){
                alert(result.data.message);
                return;
            }
            name = result.data.name;
        },
        error: function(Xhr){
           alert("出现未知错误,请重试或联系管理员");
        }
    });
    return name;
}

问题得以解决

Refference:

[1] jquery 中 ajax 如何返回值到上层函数里?