在 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/