ajax函数返回undefined

时间:2011-10-09 12:07:41

标签: javascript jquery ajax callback

我有一个用AJAX(PHP)验证代码的函数。但是,当我尝试运行它时,它会在返回undefinedtrue时返回false

功能:

function verifyViite(viite) {
    $.get('dataminer.php?question=validateViite&q='+viite, function(data) {
        jQuery.globalEval(data);
        if(valid == 1) {
            return true;
        }
        else {
            return false;
        }
    });
}

datavalid = 1;valid = 0;

2 个答案:

答案 0 :(得分:2)

由于AJAX请求是异步的,因此无法返回Callback返回值。

在回调本身内执行调用verifyViite的任何代码,而不是返回true或false。

另外,您可以synchronous AJAX request

答案 1 :(得分:2)

因为函数veryViite不返回任何内容,undefined是预期的结果。由于它的异步,你必须提供一个回调函数,该函数将在成功的ajax调用时调用。像这样的东西;

function verifyViite(viite,cb) {
    $.get('dataminer.php?question=validateViite&q='+viite, function(data) {
        jQuery.globalEval(data);
        if(valid == 1) {
            cb(true);
        }
        else {
            cb(false);
        }
    });
}

并且呼叫就像;

verifyViite(viite,function(good){
    alert(good);
});