当我控制getjson()它返回undefined

时间:2018-04-06 15:40:56

标签: javascript json ajax

我是javascript的新手。我想在函数getjsonData中存储Json数据。我创建了一个私有函数retrieveJsonData,我通过getJsonData传递它。但是我无法在onload函数之外访问json。

var DataController = (function(){
        var retrieveJsonData = function(){
            var api,ourRequest;
            api = 'http://52.69.49.40/assignment/getServiceData.php';
            ourRequest =  new XMLHttpRequest();
            ourRequest.open('GET',api);
            ourRequest.onload = function(){
                obj = JSON.parse(ourRequest.responseText);
                getJsonData(obj);
            }   
            ourRequest.send();
        }


        var getJsonData = function(object){
            return object;
        }

        return{
            AjaxObject:function(){
                getJsonData();
                console.log(getJsonData());
            }
        }


    })();

1 个答案:

答案 0 :(得分:1)

您的getJsonData接受一个参数,并返回该参数的值。它被称为“身份功能”,完全没有任何作用。您可能希望将数据存储在某处,您可以通过将函数替换为:

来执行此操作
var data = undefined;
function getJsonData() {
  if (arguments.length > 0) {
    data = arguments[0];
  }
  return data;
}
但是,这并不是一个非常好的功能,因为它没有按照它在锡上所说的那样做。它声称获取JSON数据,但它也存储它。