Uncaught TypeError: Cannot read property '0' of undefined
Uncaught TypeError: Cannot read property '0' of undefined
这是我的脚本:
<script>
var count;
var obj;
function recherche() {
xhr = new XMLHttpRequest();
xhr.open("GET", "test.json", true);
xhr.send(null);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var res = xhr.responseText;
obj = JSON.parse(res);
for (count = 0; count < obj.length; count++) {
alert(obj[count].humidity);
}
}
}
}
alert(obj);
window.onload = recherche;
</script>
我在 运行 这个脚本之后出现这个错误:
Uncaught TypeError: Cannot read property '0' of undefined
第一个警报工作正常,显示 20、30、40,但如果我在外面发出警报,我没有定义。
我想使用对象 obj 来使用其从 json 文件中存储的数据作为绘制图表的数据,而且在 script.but 中弹出此错误。
我做错了什么?
默认情况下,XHR 请求是异步。这意味着 send
启动 它们,但它们稍后完成(这就是它们具有回调而不是 return 值的原因)。只需在回调中使用 obj
。
旁注:您的代码正在成为 The Horror of Implicit Globals 的牺牲品(您从未声明 [=12=] 变量)。
这是我的脚本:
<script>
var count;
var obj;
function recherche() {
xhr = new XMLHttpRequest();
xhr.open("GET", "test.json", true);
xhr.send(null);
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
var res = xhr.responseText;
obj = JSON.parse(res);
for (count = 0; count < obj.length; count++) {
alert(obj[count].humidity);
}
}
}
}
alert(obj);
window.onload = recherche;
</script>
我在 运行 这个脚本之后出现这个错误:
Uncaught TypeError: Cannot read property '0' of undefined
第一个警报工作正常,显示 20、30、40,但如果我在外面发出警报,我没有定义。
我想使用对象 obj 来使用其从 json 文件中存储的数据作为绘制图表的数据,而且在 script.but 中弹出此错误。
我做错了什么?
默认情况下,XHR 请求是异步。这意味着 send
启动 它们,但它们稍后完成(这就是它们具有回调而不是 return 值的原因)。只需在回调中使用 obj
。
旁注:您的代码正在成为 The Horror of Implicit Globals 的牺牲品(您从未声明 [=12=] 变量)。