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

Javascript - JSON.parse: unexpected end of data - Error when using valid JSON. What am I doing wrong?

本文关键字:出错 JSON 什么 错了 有效 数据 parse 意外 结束 Javascript-JSON      更新时间:2023-09-26

因此,我发现了关于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是否存在。