欢迎光临
一起探讨学习进步

jQuery外部获取$.post函数内变量的值

 今天做了一个身份验证的程序,函数内部用到了ajax异步请求,简单代码如下:

// 检测该身份证是否能被该用户使用
function identityCheck(id_number) {
    // ajax请求数据

    var result = false;
    $.post('/identityCheck', {
    &nbs
p;   'id_number': id_number,
    }, function(response) {
      &n
bsp; // 判断逻辑

        if (response.code == '0') {
       &nb
sp;    result = true;
        } else {
     &nb
sp;      result = false;
        }
    });
 &
nbsp;  // 返回
    return result;
}

结果在外部请求,不管传进去的id_number是什么,永远打印的是false。

这可就奇了怪了~

这个问题困扰了我好久,后来才想到是不是异步请求的问题,结果一测试,果不其然,根本就没赋值就被直接输出了。

同时这也是异步的特点 ,也就是说还没来得急赋值,就已经返回这个变量了.

解决方法很简单,只要把请求设置成同步,就可以获取这个变量的值了

在前面加上一行代码,完整代码如下:

// 检测该身份证是否能被该用户使用
function identityCheck(id_number) {
    // ajax请求数据

    var result = false;
    // 新增代码

        // 请求设置为同步,获取到变量的值

        $.ajaxSetup({
            async:false,
&n
bsp;       });
    $.post('/identityCheck', {
      &nbs
p; 'id_number': id_number,
    }, function(response) {
        //
 判断逻辑

        if (response.code == '0') {
       &nb
sp;    result = true;
        } else {
     &nb
sp;      result = false;
        }
    });
 &
nbsp;  // 返回
    return result;
}

这回终于能获取到result的值了,大功告成~

未经允许不得转载:jQuery外部获取$.post函数内变量的值

评论 0

评论前必须登录!