• 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",
  • 相关阅读:
    java9新特性-9-语法改进:try语句
    10.04 FZSZ模拟Day1 总结
    10.03模拟总结
    HNOI2012 永无乡
    ZJOI2007 报表统计
    HNOI2004 宠物收养场
    HNOI2002 营业额统计
    Splay 区间反转
    Splay基本操作
    HEOI2016 树
  • 原文地址:https://www.cnblogs.com/lixv2018/p/13732884.html
Copyright © 2020-2023  润新知