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",

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM