从Github中提取json数据时出现类型错误

时间:2017-10-31 14:00:59

标签: javascript jquery json git d3.js

我使用d3.json从Enterprise GitHub中提取json链接(与js文件所在的repo /文件夹相同。

d3.json("https://raw.github.exampleEnterprise.com/path/to/repo/data.json?token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",function(error, flare) {
  console.log(flare);
  root = flare;
  update(root);
});

我收到错误TypeError: flare is undefined

当我从公共GitHub中取出它时,一切正常

d3.json("https://raw.githubusercontent.com/path/to/repo/data.json",function(error, flare) {
  console.log(flare);
  root = flare;
  update(root);
});

当我在浏览器的地址栏中粘贴带有令牌的企业链接时,我可以看到整个JSON文件。所以奇怪的是,它没有通过,或者为什么。

编辑: 我已经添加了错误返回

d3.json("https://raw.github.exampleEnterprise.com/path/to/repo/data.json?token=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX",function(error, flare) {
  if(error){ console.log("There was an error", error); }
  console.log(flare);
  root = flare;
  update(root);
});

并且可以看到我收到的错误是:

错误XMLHttpRequest {onreadystatechange:null,readyState:4,timeout:0,withCredentials:false,upload:XMLHttpRequestUpload,responseURL:"",status:0,statusText:" ",responseType:"",响应:"" }

编辑2:在网络选项卡中,我看到了对我的GET请求的200响应。检查"响应"请求的标签我可以看到一个红色错误:SyntaxError: JSON.parse: unexpected end of data at line 1 column 1 of the JSON data我尝试使用d3.text()而不是d3.json(),它仍然返回" undefined" (正如我在控制台中看到的那样)。这就解释了这个错误。

1 个答案:

答案 0 :(得分:2)

在该回调中,您不会检查是否有错误。

如果出现错误,数据将不确定。

如果你要做这样的事情:

d3.json("__url__", function(error, data){
    if(error){ console.log("There was an error", error); }
    else{
        console.log("Here is your data: ", data);
    }
})

您可以查看是否存在错误,只要没有错误,就可以访问数据对象。

希望这有帮助。