CSV PapaParse 不适用于某些链接

CSV PapaParse doesn't work for some links

我将 PapaParse 用于 JavaScript 的 CSV 文件。我可以使用 CSV 文件 from this website and using this link,这是第 5 个文件。使用这个 link.

一切都很好

当我下载此文件并将其上传到 github 或我的网站之一,然后改用 link 时,问题就出现了。所以基本上,如果我使用托管在不同站点上的相同文件,解析器将无法工作。知道为什么吗?

更新:

Rawgit 确实适用于 github.com 文件,但我似乎仍然无法从我的网站解析 CSV 文件。这只是一个 link 所以我不知道为什么它不起作用。想法?

此外,上面的第一个 link 来自 github.io。为什么 github.io 上的 CSV 文件有效,而 github.com 或我的网站上的文件无效?

document.getElementById('submit').addEventListener("click", function() {
  checkLogin();
});

function checkLogin() {

  /* DOESN'T WORK */
  // "https://github.com/dhust/test/blob/master/Formaldehyde.csv"
  // "http://csfor.us/cs1/wp-content/uploads/2017/06/Formaldehyde.csv"

  /* WORKS */
  // "https://vincentarelbundock.github.io/Rdatasets/csv/datasets/Formaldehyde.csv"

  Papa.parse("https://vincentarelbundock.github.io/Rdatasets/csv/datasets/Formaldehyde.csv", {
    download: true,
    complete: function(results) {
      document.getElementById("output").innerHTML = results.data;
      console.log(results.data);
    }
  });
}
<script src="https://cdn.rawgit.com/mholt/PapaParse/3bf63f0a/papaparse.min.js"></script>
<input id="submit" type="button" value="Submit" />
<p id="output"></p>

Link to JSFiddle

Github 不允许直接下载这样的文件(参见 )。

另外请注意,您的 Javascript 控制台会有类似

的内容

XMLHttpRequest cannot load https://github.com/dhust/test/blob/master/Formaldehyde.csv. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://fiddle.jshell.net' is therefore not allowed access.

但是,如果您使用 RawGit,您可以获得一个应该可以工作的 link,并且在 JSFiddle

上似乎确实没问题

感谢 palfrey 指引我正确的方向。这是解决我的问题的方法:

  1. 为我的每个网站添加 SSL(基本 SSL 免费)
  2. 将其添加到每个网站根文件夹中我的 .htaccess 文件中

    Header add Access-Control-Allow-Origin "*"
    Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
    Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"