所以,我发现了类似的关于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此时停止了。
我很难过。任何帮助表示赞赏。
答案 0 :(得分:8)
在解析响应之前,您必须检查是否jsonGet.readyState==4 && jsonGet.status==200
。