因此,我发现了有关JQuery的类似问题,您无需在其中进行解析。由于我使用的是AJAX XMLHttpRequest,据我所知,解析是必要的。错误在行上给出:
text = JSON.parse(jsonGet.responseText);
错误:
JSON.parse: unexpected end of data text = JSON.parse(jsonGet.responseText);
功能的相关部分:
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 {} };
返回的JSON如下所示(不包含换行符):
{"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仍在此时停止。
我很沮丧。任何帮助表示赞赏。
您必须jsonGet.readyState==4 && jsonGet.status==200在解析响应之前检查是否。
jsonGet.readyState==4 && jsonGet.status==200