javascript - 当我控制台 getjson() 它返回未定义

标签 javascript json ajax

我是 JavaScript 新手。我想将 Json 数据存储在函数 getjsonData 中。我创建了一个私有(private)函数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 数据,但它也存储它。

关于javascript - 当我控制台 getjson() 它返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49696446/

相关文章:

javascript - 向上滚动应该显示导航

javascript - 当元素隐藏时如何禁用 `accesskey`?

JSON:对于 JSON 和 JSON Schema 是否有等效的 Schematron? (即一种JSON技术来表达co-constraints)

html - 使用 NODEJS 后端从 HTML 表单发送 JSON

javascript - 理解javascript多维数组的问题

php - JQuery中发现PHP返回AJAX错误

javascript - 固定导航添加类依赖于部分

javascript - Javascript:在请求的对象“未找到”的情况下,使用模式空对象模式,RORO,未定义等作为Get函数的返回参数

json - 从whattomine中的链接接收JSON数据而不抓取HTML

php - 如何让javascript在AJAX返回的元素上运行