Jquery – 将Ajax jSON响应存储为变量

前端之家收集整理的这篇文章主要介绍了Jquery – 将Ajax jSON响应存储为变量前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图获得ajax请求的结果,设置一个可以在该请求之外访问的变量.我尝试过这个 JQuery – Storing ajax response into global variable,但是我的可变啤酒在$.JSON和$.ajax函数之外仍未定义.

这是我的代码,在哪里可以看到console.log(啤酒)的结果.

var beer;
        $.getJSON(jsonUrl,function(json){
            beer = json;   
            console.log(beer); // returns beer                 
        });         
        console.log(beer); // returns undefined                 

        var beer = (function(){
            var result;

            $.ajax({
                url: jsonUrl,success: function(data) {
                    result = data;
                    console.log(beer); // returns beer                 

                }
            });
            console.log(result); // returns undefined
            if (result) return result;
        })();
        console.log(beer); // returns undefined

解决方法

这是一个异步请求,所以它被释放,但是您的脚本不会等待回应之前继续.如果您需要等待ajax请求完成,请尝试以下操作:
var beer;
$.getJSON(jsonUrl,function(json){
    beer = json;   
    checkDrink();                
});         

function checkDrink() {
    console.log(beer);
}

猜你在找的jQuery相关文章