javascript 无法访问参数的属性 undefined 错误

边查边做,完全不了解JS,希望大佬们可以指点指点。
自己在本地打算做一个小页面显示一些数据,数据用python定期获取并输出成一个叫data.json的文件。
下面是具体代码:

<!-- html 页面中的代码 -->
<script src="resource/jquery-3.6.0.js"></script>
<script src="resource/script.js"></script>
<script>
    getSomething(getStationData());
    <!--
    也试过这种写法:
    var someData = getStationData();
    getSomething(someData);
    -->
</script>

下面是data.json托管在http://127.0.0.1/data/data.json

{
    "STANAME": "Station"
}

下面是javascript

function getStationData(dataType) {
    var dataUrl = "http://127.0.0.1/data/data.json";
    var urlResponse = $.getJSON(dataUrl, function() {
        console.log("getStationData at resource/script.js.");
    })
        .done(function(json) {
            console.log("getStationData: OK. Get station data success.");
            console.log("getStationData: MSG: Data type is " + typeof json);
            var stationData = json;
            console.log(stationData);
            return stationData;
        })
        .fail(function() {
            console.log("getStationData: NG. Get station data fail.");
        })
        .always(function() {
            console.log("getStationData: Complete.");
        });
}

function getSomething(rawData) {
    console.log("getSomething: " + rawData);
    var thing = rawData["STANAME"];    //试过用`.STANAME`和`[STANAME]`,结果都是同样的错误。
    console.log("getSomething: " + thing);
}

在chrome中打开页面,会提示getSomething: undefined,是getSometing的第一行输出的。
getSomething括号里调用的getStationData,可以正常执行。typeof json输出的是objectconsole.log也能正确输出json文件的内容。

具体表现看下图:
chrome的错误提示

阅读 1.8k
1 个回答

这个方法里面并没 return 。所以这个值你肯定取不到。image.png

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题