【问题标题】:Problems using D3.js locally [duplicate]在本地使用 D3.js 的问题[重复]
【发布时间】:2015-05-02 09:03:12
【问题描述】:

我正在尝试使用这个Simple d3.js Graph,但是每当我在本地加载文件时,图形都不会呈现。

我不确定这是否与加载 D3.js 库有关?我在目录中有 CSV 文件。

我知道这是一个模糊的问题,但有什么想法为什么这在本地不起作用?

【问题讨论】:

  • 您在开发工具中看到任何错误吗?
  • 我可以通过在 HTTP-Server 上打开一个端口然后加载文件来完成这项工作。

标签: d3.js


【解决方案1】:

更改尝试加载data.csv 的行以请求他在http://bl.ocks.org/d3noob/raw/b3ff6ae1c120eea654b5/a1f7e8f2a609bfab778b8c48eaa0f7c90f3f6f80/data.csv 托管的版本

您无法在本地加载文件。

【讨论】:

  • 现在我得到:1 XMLHttpRequest 无法加载bl.ocks.org/d3noob/raw/b3ff6ae1c120eea654b5/…。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 Origin 'null'。
  • 叹息。如果您使用 chrome 并以 --allow-file-access-from-files 启动它,您可以从文件系统加载它。从 os x 终端,/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --allow-file-access-from-files 在 windows 上,您必须编辑 .exe 上的属性,或其他东西。
  • 我使用@user1403582的方法。如果您想使用 Chrome,则无需在本地运行 Web 服务器。但是,我发现我需要提供 html 文件的完整路径。因为我几乎总是从包含我正在处理的文件的目录中启动 Chrome,所以我在 shell 脚本中添加了`pwd`open -a /Applications/Google\ Chrome.app --args --allow-file-access-from-files `pwd`/"$1"
【解决方案2】:

如果您使用的是 Chrome,由于跨域安全限制,它可能会阻止您正确打开文件。试试 Firefox 看看是不是这样(它可能会让你正确加载文件)。

如果这是问题所在,您需要安装 WAMP 之类的本地 Web 服务器(如果您运行的是 Windows)或按照此处 wiki 页面上的说明进行操作:https://github.com/mbostock/d3/wiki

祝你好运

【讨论】:

    【解决方案3】:

    javascript 不允许从本地磁盘加载文件。这就是 csv 文件保存到本地时的样子,d3.js 会尝试引用它。如果你有本地网络服务器,你可以让它工作。

    【讨论】:

    • sigh 我想我可以直接推送到 GitHub
    • 您在尝试使用 user1403582 的方法时可能会遇到同样的问题。问题是您现在正在发出跨域请求,其中服务器可能没有明确允许您的域(本地 = null)通过脚本访问其资源。见:developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-09
    • 1970-01-01
    相关资源
    最近更新 更多