如何从ajax响应中获取数据并分配给javascript变量

时间:2015-08-07 09:25:46

标签: javascript jquery

以下功能始终会提醒undefined。代码执行在ajax请求完成之前完成。请帮助。

function validateUser() {
    var user = document.getElementById("user").value
    var isuserValid = isvalidUser(user);
    alert("returned Result:" + isuserValid); // it always prints undefined,ajax request not completed.How can i wait for ajax request to complete 
    if (isuserValid) {
        alert("user Account found);
        } else {
            alert("Invalid user");
        }
    }

    function isValidUser(user) {
        $.ajax({
            url: 'validateUser.jsp'
            type: 'GET',
            dataType: 'html'
            data: {
                userName: user
            },
            success: function(data) {
                if (data.trim() = "true")
                    return true;
            } else {
                return false;
            }
        });
    }

//it always alerting undefined 

2 个答案:

答案 0 :(得分:0)

将警报放入AJAX请求的成功回调中。这只会在AJAX请求完成后运行警报。

答案 1 :(得分:0)

如果您想要同步AJAX,则需要在请求中设置async: false;默认为true

function isValidUser(user) {
        $.ajax({
            url: 'validateUser.jsp'
            type: 'GET',
            async: false,
            dataType: 'html'
            data: {
                userName: user
            },
            success: function(data) {
                if (data.trim() = "true")
                    return true;
            } else {
                return false;
            }
        });
    }
  

请注意,同步请求可能会暂时锁定浏览器,并在请求处于活动状态时禁用任何操作。