1

我正在尝试将数据从 JSON 加载到我的网站。一切正常运行了一段时间,但今晚我突然开始收到以下错误。(到目前为止它在本地主机上工作)

Uncaught SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at FileReader.<anonymous>

调用 JSON 的 Javascript 如下:

function readJSON(path) {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', path, true);
    xhr.responseType = 'blob';
    xhr.onload = function(e) { 
        if (this.status == 200) {
            var file = new File([this.response], 'temp');
            var fileReader = new FileReader();
            fileReader.addEventListener('load', function(){
                // do stuff with fileReader.result
                var volant = JSON.parse(fileReader.result);
                // console.log(volant);   
            });
            fileReader.readAsText(file);
        } 
    }
    xhr.send();
}

readJSON('https://volant.inexsda.cz/v1/workcamps.json');

我需要从 JSON 中读取数据,但现在我不能了。有人可以帮忙吗?

编辑:一切都在 Safari 上正常工作。该问题发生在 Chrome 中。

4

1 回答 1

1

正如@abestrad 指出的那样,xhr.responseType = 'blob';这是一个可能的问题,应该如此json所述。

更新:尝试以下方法,这对我在同一域的 chrome 中有用:

function readJSON(path) {
    var xhr = new XMLHttpRequest();
    xhr.open('GET', path, true);
    xhr.responseType = 'json';
    xhr.onreadystatechange  = function(e) { 
        if (xhr.readyState == 4) {
            if (this.status == 200) {
                console.log(this.response);
            } 
        }
    }
    xhr.send();
}

readJSON('https://volant.inexsda.cz/v1/workcamps.json');
于 2019-02-15T23:29:22.683 回答