今天做项目时,写了一个数据库查询后返回的函数
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",