2012-02-17 10 views
2

したがって、解析する必要がないJQueryについても同様の質問があります。私が理解しているところからAJAX XMLHttpRequestを使用しているので、解析が必要です。エラーがライン上で与えられます。Javascript - JSON.parse:予期しないデータの終了 - 有効なJSONを使用しているときのエラー。私は間違って何をしていますか?

text = JSON.parse(jsonGet.responseText); 

エラー:関数の

JSON.parse: unexpected end of data 
text = JSON.parse(jsonGet.responseText); 

関連部品:JSONは(改行なし)このようなルックスを返さ

function populateList(){ 
//retrieves list from the server, adds it to the option box 
    if(toggle == 0){ 
     var jsonGet = new XMLHttpRequest(); 
     jsonGet.open("GET","./json/GetAllEvents.php",true); 
     jsonGet.onreadystatechange = function() { 
       text = JSON.parse(jsonGet.responseText); //ERROR HERE 
       //updating html with data received 
     }; 
     jsonGet.send(); 
     toggle = 1; 
    } else {} 

}; 

{"success":true, 
"number_of_rows":2, 
"data":[ 
    {"id":"7","event_name":null,"day":3,"start_time":510,"end_time":617}, 
    {"id":"8","event_name":null,"day":1,"start_time":510,"end_time":617} 
]} 

JSONLintは上記が有効であると言います。私は、XMLHttpRequestが何か変なことをするかどうかを調べると思います。 Firefoxは機能し続けます(たとえFirebugがエラーを表示しても)IE9はこの時点で停止します。

私はかなり困惑しています。どんな助けもありがとうございます。

答えて

5

応答を解析する前にjsonGet.readyState==4 && jsonGet.status==200かどうかをチェックする必要があります。

+1

恐ろしく、jsonGet.readyState == 4はエラーを取り除いています。ただし、ステータスを追加すると実行されません。 .jsonファイルを使ったテストでのステータスは0です。ありがとうございました。 – douggard

+0

実際の.phpファイルを使用するとステータス200になります。もう一度お返事してください! – douggard

+1

素晴らしい!ゼロステータスは、Webサーバーと.jsonファイルの関係になります。 – bfavaretto

関連する問題