jQuery Ajax 返回值

诸所周知的,Ajax返回值是在匿名函数里处理的,且因jQuery 中$.post,$.get默认是异步处理,因此导致无法获取返回值问题,接收到的返回值往往是undefined,一般比较有效的处理方法是设置全局变量接收返回值。

时间关系,草草一例,以示用法:

function checkPwd(username, pwd) {
    if (!pwd) {
        alert("密码不能为空");
        return false;
    }
    var result; // 定义变量接收返回值
    $.ajax({
        url: "/home/login/checkPwd",
        async: false,//改为同步方式
        type: "POST",
        cache: false,
        data: {username: username, passwd: pwd},
        dataType: "json",
        success: function (data) {
            result = data; // 接收返回值
        }
    });

    if (result.status == 'error') {
        alert(result.msg);
        return false; // 返回给调用函数
    }
}

/**
 * 验证表单
 * @param form
 * @returns {boolean}
 */
function login(form) {
    with (form) {
        // 上面代码在ajax之外设返回值false,这里才可以拿到,否则是undefined
        if ( checkPwd(user.value, pwd.value)== false ) {
            return false;
        }
    }
}

猜你喜欢

转载自blog.csdn.net/yageeart/article/details/78177925