将Ajax数据分配给全局变量的问题

时间:2016-04-28 13:14:51

标签: javascript ajax

我从AJAX源获取数据,然后将其分配给似乎不起作用的全局变量。有人可以指出我正确的方向吗?

var products = [];
    var count = 0;
    $.ajax(
    {
        url: 'url',
        success: function(response)
        {
            prCallback(response);

        },
        dataType: 'jsonp'
    });
    function prCallback(response)
    {
        window.products = response;            
    }
    console.log(products);

products仍为空array,尽管指定了值。

2 个答案:

答案 0 :(得分:4)

您在回复之前正在记录。在回调中移动console.log。

ajax请求是异步的,这意味着在调用console.log时尚未返回。

答案 1 :(得分:-2)

将值分配给全局变量不是一个好主意。

然而,在console.log中,您拥有在顶部声明的变量产品。在回调中,您已将值赋值给窗口变量" products" - 不要在顶部声明变量。

您可以删除声明 - " var products = []"你应该在console.log中看到结果。但是以这种方式存储它们是一个坏主意。