Jquery $.post $.get“异步”请求导致获取不到返回值

今天做项目时,写了一个数据库查询后返回的函数

function getpname(PARENT_ID){
    var pname='';
    $.post("/KEJITEMP/DealWithBT",{
        flag:"getpname",
        ID:PARENT_ID,
    },function(data){
        data=JSON.parse(data);
        pname = data.CNNAME;
        });
    return pname;
}

在调用时获取到的pname返回值一直为undefined,然后想到$.post发得请求为“异步”请求,所以pname没有被赋值就被返回了,经过alert验证function对pname赋值确实在return之后。

因此上面的写法显然是错误的,需要将发送方式改为同步:

var pname='';//设置全局变量
    $.ajaxSettings.async=false;  //插入这个代码用ajax的“同步方式”调用一般处理程序
    $.post("/KEJITEMP/DealWithBT",{
//另一种写法时:
$.ajax({ url:
"", async: false,//改为同步方式 type: "POST",
原文地址:https://www.cnblogs.com/lixv2018/p/13732884.html