javascript - 通过 Chrome 中的 Fetch API 在 D3 v5 中加载 JSON?

标签 javascript d3.js fetch es6-promise

在 Chrome 中运行以下代码时,在另一个浏览器选项卡/窗口中加载 pubs.json 之前,不会触发 d3.json 回调。当 d3.json 粘贴到 Chrome 浏览器控制台时它可以工作,如果在 Firefox 中运行它可以工作...

我在 localhost 上使用 Python 的 http.server

为什么 Chrome 会这样?

目录结构:

proj/
  index.html
  pubs.json

代码:

<html>
  ...
  <body>
    ...
    <script>
        $(document).ready(function(){
            d3.json("/pubs.json").then(function(data) {
                console.log(data);
            });
        });
    </script>
  </body>
</html>

最佳答案

Chrome 对于 CORS(同源)很迂腐

尝试以下操作:

d3.json(chartURL, {credentials: 'same-origin'}).then(function(data) {
    ....
});

如果文件是由另一个选项卡加载的,则可以在缓存中找到它,也许要求不再那么严格。

关于javascript - 通过 Chrome 中的 Fetch API 在 D3 v5 中加载 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51602574/

相关文章:

javascript - jquery onclick 切换图像 src

javascript - 让 parent 的 child 找到 parent 的 child 文本宽度

json - d3js json饼图

javascript - React Native - fetch 似乎没有触发

node.js - 无法使用 fetch 发送请求

reactjs - Fetch 和 setInterval react 钩子(Hook)问题

javascript - 我如何从数据库表中读取事件并在 java 脚本和 jquery 中以各自的日期显示它们

javascript - .attr ('checked' , true) 不会在按钮点击时重新添加

javascript - 从现场比分网站抓取网页

javascript - 无法获取要在 rect d3js v4 顶部渲染的轴值