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

时间:2018-07-30 21:32:45

标签: javascript d3.js fetch es6-promise

在Chrome中运行以下代码时,只有在其他浏览器标签/窗口中加载d3.json时,才会触发pubs.json回调。将d3.json粘贴到Chrome浏览器控制台中后,它才能工作;如果在Firefox中运行,它就可以工作...

我在http.server上使用Python的localhost

为什么它会在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>

1 个答案:

答案 0 :(得分:-1)

Chrome对于CORSSame Origin)颇为痴迷

尝试以下操作:

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

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