Uncaught SyntaxError:JSON.parse处的JSON输入意外结束

时间:2019-02-15 22:05:14

标签: javascript json cross-origin-read-blocking

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

onvifManager.getMediaProfiles(device1, new OnvifMediaProfilesListener() {
      @Override
      public void onMediaProfilesReceived(@Nonnullbe.teletask.onvif.models.OnvifDevice device,
                                                            @Nonnull List<OnvifMediaProfile> mediaProfiles) {

      onvifManager.getMediaStreams(device, mediaProfiles.get(0), new OnvifMediaStreamURIListener() {
           @Override
           public void onMediaStreamURIReceived(@Nonnull be.teletask.onvif.models.OnvifDevice device,
                                                                     @Nonnull OnvifMediaProfile profile, @Nonnull String uri) {

                appendResultsText(uri, nThisDeviceTrack, nDeviceTotal, lShowNotifications_x, lVxgViewRefresh_x );


           }
      });
    }
 });

以下是调用JSON的Javascript:

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

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

编辑:一切都可以在Safari上正常运行。该问题正在Chrome中发生。

1 个答案:

答案 0 :(得分:1)

@abestrad指出,xhr.responseType = 'blob';是一个可能的问题,应按照here所述为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');