-1

此函数始终返回未定义但警报显示正确的值。

    function _gesamt()
{
   var link = "speichern.php?gesamt=true";
    //alert(link);
    var req = new XMLHttpRequest();
    req.onreadystatechange = function(){
        //alert("Ready:"+req.readyState);
        if(req.readyState == 4){
            alert(req.responseText);
            return req.responseText;
        }
    }
    req.open("GET",link,false);
    req.send();
}
4

2 回答 2

1

AJAX 是异步的。所以你必须使用回调。

function _gesamt(callback)
{
   var link = "speichern.php?gesamt=true";
    //alert(link);
    var req = new XMLHttpRequest();
    req.onreadystatechange = function(){
        //alert("Ready:"+req.readyState);
        if(req.readyState == 4){
            callback(req.responseText);
        }
    }
    req.open("GET",link,false);
    req.send();
}

_gesamt(function(response) {
    // do your work here
    alert(response);
});
于 2013-09-06T12:17:04.137 回答
0

是在return内部函数中,所以运行_gesamt不应该返回任何东西(甚至抛开为什么要以这种方式发出 AJAX 请求的问题)

于 2013-09-06T12:15:40.430 回答