Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 当我控制台getjson()时,它返回未定义的_Javascript_Json_Ajax - Fatal编程技术网

Javascript 当我控制台getjson()时,它返回未定义的

Javascript 当我控制台getjson()时,它返回未定义的,javascript,json,ajax,Javascript,Json,Ajax,我是javascript新手。我想在函数getjsonData中存储Json数据。我已经创建了一个私有函数retrieveJsonData,并通过getJsonData传递它。但是我不能在onload函数之外访问json var DataController = (function(){ var retrieveJsonData = function(){ var api,ourRequest; api = 'http://52.6

我是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());
            }
        }


    })();

您的
getJsonData
接受一个参数,并返回该参数的值。这就是所谓的“身份功能”,它完全不起任何作用。您可能希望将该数据存储在某个位置,您可以将函数替换为:

var data = undefined;
function getJsonData() {
  if (arguments.length > 0) {
    data = arguments[0];
  }
  return data;
}

不过,这不是一个很好的功能,因为它不符合锡罐上的说明。它声称可以获取JSON数据,但也可以存储它。

函数本身不存储数据