この質問は何度も尋ねられました。それでも、私はそれを作成する関数の範囲外に読み込まれたオブジェクトを取得する方法を理解していません。私は明らかに動作していない第二にconsole.logのmyArrでXMLHttpRequestを使用してJSONファイルをJavascript配列にグローバルスコープでロードします。
var xmlhttp = new XMLHttpRequest();
var url = "lineJSON.json";
var myArr= new Array();
xmlhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
myArr = JSON.parse(this.responseText);
console.log(myArr[0].url); //here it give the right output
}
};
xmlhttp.open("GET", url, true);
xmlhttp.send();
console.log(myArr[0].url); // Cannot read property 'url' of undefined
行う場合は特に
は、そのurl
キーはそれは未定義です!
myArr
をその外で利用できるようにするにはfunction
?私はjQueryのを使用しないしたい可能であれば
FYI JSONは
[
{
"display": "JavaScript Tutorial",
"url": "http://www.w3schools.com/js/default.asp"
},
{
"display": "JavaScript Tutorial",
"url": "http://www.w3schools.com/js/default.asp"
}
]
です。
この質問は、jQueryについてのものです。 「同期」要求の問題は同じように見えます。 –