2016-08-04 12 views
0

XMLHttpRequestを使用して取得したファイルの結果を配列に追加しようとしています。ファイルはjsonです。ここでTypeErrorを修正する方法:undefinedはオブジェクトエラーではありませんか?

はエラーを作成するコードです:targetをさせずに使用して

var array = []; 
var req = new XMLHttpRequest(); 
req("get", "test.json"); 
req.onreadystatechange = handle(req, array); 
req.send(); 

function handle(req, array) { 
    if ((req.target.readyState == 4) && (req.target.status == 200)) { 
     var json = JSON.parse(req.target.responseText); 
     array.push(json.test); 
     alert(array); 

    } 
} 

あなたが要求の間違ったプロパティを使用している値4

+2

あたりなどのためにインライン関数を試してみてください? –

+0

代わりに、console.log(array)を使用してデータの結果をテストします。 @JulianKuchlbauerに合意し、エラーはどの行で発生するのですか? – ThatAwesomeCoder

+0

そして、あなたはreq.open( "get"、 "test.json")と書かなければなりません。 ... –

答えて

0

を持っています。

はonreadystatechangeにコールバック

var array = []; 
var req = new XMLHttpRequest(); 
req("get", "test.json"); 
req.onreadystatechange = function(){ 
    if ((req.readyState == 4) && (req.status == 200)) { 
     var json = JSON.parse(req.responseText); 
     array.push(json.test); 
     alert(array); 
    } 
}; 
req.send(); 

またはエラーが発生したラインで、あなたのよう

var array = []; 
    var req = new XMLHttpRequest(); 
    req("get", "test.json"); 
    req.onreadystatechange = handle(); 
    req.send(); 
function handle(){ 
     if ((req.readyState == 4) && (req.status == 200)) { 
      var json = JSON.parse(req.responseText); 
      array.push(json.test); 
      alert(array); 
     } 
    }; 
+0

'array'と' req'は関数内にあり、 'handle'は別の関数です。 – 1072

関連する問題