javascript - 从 Github pull json 数据时出现 TypeError

标签 javascript jquery json git d3.js

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

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:耀斑未定义

当我从公共(public) GitHub 中提取它时,一切正常

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

当我将带有 token 的企业链接粘贴到浏览器的地址栏中时,我可以看到整个 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, readState: 4, timeout: 0, withCredentials: false, upload: XMLHttpRequestUpload, responseURL: "", status: 0, statusText: "", responseType: "", response: “” }

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

最佳答案

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

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

如果你要做这样的事情:

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

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

希望这有帮助。

关于javascript - 从 Github pull json 数据时出现 TypeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47037274/

相关文章:

javascript - 在 javascript 中模仿 jsonp

c# - 嵌入 Webkit 时操作页面的最佳方式?

javascript - 如何在更改时提交多个下拉菜单

javascript - 使用 Promise.race 和 setImmediate 确定 Promise 状态

javascript - jQuery $ ("#radioButton").change(...) 在取消选择期间未触发

javascript - 撤消或删除slideUp

javascript - JQuery FancyBox、Prepend 函数和 <a href> 标签在 IE 7 和 8 中不起作用..(其他浏览器功能正常)

java - 解析 JSON 字符串时出现问题

arrays - 如何将嵌套数组转换为散列或 JSON 值作为数组

python - 将 json 记录数组规范化为数据框