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>
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 指引我正确的方向。这是解决我的问题的方法:
- 为我的每个网站添加 SSL(基本 SSL 免费)
将其添加到每个网站根文件夹中我的 .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"
我将 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>
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 指引我正确的方向。这是解决我的问题的方法:
- 为我的每个网站添加 SSL(基本 SSL 免费)
将其添加到每个网站根文件夹中我的 .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"