一尘不染

Javascript-JSON.parse:数据意外结束-使用有效JSON时出错。我究竟做错了什么?

json

因此,我发现了有关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仍在此时停止。

我很沮丧。任何帮助表示赞赏。


阅读 277

收藏
2020-07-27

共1个答案

一尘不染

您必须jsonGet.readyState==4 && jsonGet.status==200在解析响应之前检查是否。

2020-07-27