Uncaught SyntaxError: Неожиданный конец ввода JSON в JSON.parse
Я пытаюсь загрузить данные из 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 ответ
Решение
Как отметил @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');