CSV PapaParse对某些链接不起作用

时间:2017-06-02 17:13:09

标签: javascript csv papaparse

我使用PapaParse将JavaScript文件用于我的CSV文件。我可以使用CSV文件from this websiteusing this link,这是第5个文件。使用此链接,一切都很好。

当我下载此文件然后将其上传到github或我的某个网站然后使用该链接时,会出现问题。所以基本上,如果我使用托管在不同站点上的相同文件,解析器就不起作用。知道为什么吗?

更新

Rawgit确实适用于github.com文件,但我似乎无法解析我网站上的CSV文件。它只是一个链接,所以我不知道它为什么不起作用。思考?

此外,上面的第一个链接来自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>
&#13;
&#13;
&#13;

Link to JSFiddle

2 个答案:

答案 0 :(得分:1)

Github不允许直接下载这样的文件(参见https://stackoverflow.com/a/4605068/320546)。

另外请注意,您的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,你可以获得一个应该有效的链接,而且在JSFiddle上看起来确实没问题

答案 1 :(得分:0)

感谢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"