Uncaught SyntaxError: Неожиданный конец ввода JSON в JSON.parse - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь загрузить данные из JSON на мой сайт.Некоторое время все работало правильно, но сегодня вечером я неожиданно начал получать следующую ошибку.(пока это работает на localhost)

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

Javascript, вызывающий JSON, выглядит следующим образом:

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.

1 Ответ

0 голосов
/ 16 февраля 2019

Как отметил @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');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...