Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 返回值=在另一个Ajax函数中调用Ajax函数时未定义_Javascript_Python_Ajax - Fatal编程技术网

Javascript 返回值=在另一个Ajax函数中调用Ajax函数时未定义

Javascript 返回值=在另一个Ajax函数中调用Ajax函数时未定义,javascript,python,ajax,Javascript,Python,Ajax,我有一个带有XML HTTP请求的函数。不幸的是,当我调用这个函数getUserdataByToken()时,我没有返回我的DB结果。userdata值只存在于匿名Ajax回调函数中,您只能从那里返回它。这是毫无意义的,因为没有地方可以归还;当然,该值不会从getUserdataByToken返回。不要忘记Ajax调用是异步的;当sendPost调用getUserdataByToken时,甚至不会发出请求 一般来说,使用jQuery这样的库会更好。除了使您的代码更简单之外,它还允许您使用诸如承诺

我有一个带有XML HTTP请求的函数。不幸的是,当我调用这个函数getUserdataByToken()时,我没有返回我的DB结果。userdata值只存在于匿名Ajax回调函数中,您只能从那里返回它。这是毫无意义的,因为没有地方可以归还;当然,该值不会从
getUserdataByToken
返回。不要忘记Ajax调用是异步的;当
sendPost
调用
getUserdataByToken
时,甚至不会发出请求

一般来说,使用jQuery这样的库会更好。除了使您的代码更简单之外,它还允许您使用诸如承诺之类的东西来明确地解决此类问题


(还有,你真的需要支持IE5吗?你确定吗?

userdata值只存在于匿名Ajax回调函数中,你只能从那里返回它。这是毫无意义的,因为没有地方可以归还;当然,该值不会从
getUserdataByToken
返回。不要忘记Ajax调用是异步的;当
sendPost
调用
getUserdataByToken
时,甚至不会发出请求

一般来说,使用jQuery这样的库会更好。除了使您的代码更简单之外,它还允许您使用诸如承诺之类的东西来明确地解决此类问题


(还有,你真的需要支持IE5吗?你确定吗?

你不能从异步调用返回。XMLHTTPREQUEST是一个异步调用。它将始终返回undefinedyou需要向当前函数传递回调函数,例如此语句
return userDataRequest毫无意义。将其替换为
sendPost
。我希望上面的链接能够回答您的问题。您不能从异步调用返回。XMLHTTPREQUEST是一个异步调用。它将始终返回undefinedyou需要向当前函数传递回调函数,例如此语句
return userDataRequest毫无意义。将其替换为
sendPost
。上面的链接有你的问题的答案,我希望如此。加上一个对IE的评论!这个垃圾什么时候会从世界上最后一台计算机上删除?加上一个评论IE!什么时候才能从世界上最后一台计算机上删除这些垃圾?
function getUserdataByToken() {

    var token = localStorage.getItem("token");
    var userDataRequest;

    //-AJAX-REQUEST
        var xhttp;
        if (window.XMLHttpRequest) {
            xhttp = new XMLHttpRequest();
        } else {
        // code for IE6, IE5
            xhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

        var url= window.location.protocol+"//"+window.location.host+"/getuserdatabytoken";
        var param = "token=" + token;

        xhttp.onreadystatechange = function() {
            if (xhttp.readyState == 4 && xhttp.status == 200) {
                userDataRequest = JSON.parse(xhttp.responseText);

                if (userDataRequest.success === "false") {
                    warningMessage('homeMessage', false, userDataRequest.message);
                } else {
                    return userDataRequest;
                }
            }
        };

        xhttp.open("POST", url, true);
        xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xhttp.send(param);
}
    function sendPost(wall) {

        var content;
        var token = localStorage.getItem("token");
        var userData = getUserdataByToken(); // PROBLEM

        console.log(userData); // "leads to undefined"
        alert(userData); // "leads to undefined"
… Ajax Call etc…