我正在制作一个网站来展示我的一个项目。大约每周一次,这个项目生成一个新的版本,其中有一个文件machine_friendly.csv
。这个文件只包含一些生成的数据(每次都不同)。
我想创建一个github页面网站,用户可以导航到该网站并查看machine_friendly.csv
文件的美化版本。问题是github的CORS不允许我直接下载该文件。例如,这不起作用:
React.useEffect(() => {
fetch('https://github.com/beyarkay/eskom-calendar/releases/download/latest/machine_friendly.csv')
.then(response => {
if (response.ok) return response.json()
throw new Error('Network response was not ok.')
})
.then(data => console.log(data.contents))
.catch(err => console.log(err));
}, []);
并给出CORS错误消息:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at
https://github.com/beyarkay/eskom-calendar/releases/download/latest/machine_friendly.csv.
(Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
Status code: 302.
有什么办法可以解决这个问题吗?我试过将文件上传到pastebin和github版本,但没有一个pastebin可以免费启用CORS。我也试过一些CORS代理,但它们要么太长时间,要么就不再工作了。我也试过使用github的API,但这也给CORS带来了问题。
是否有在线服务,我可以上传我的小(〈1MB)文件,并通过javascript下载它?
1条答案
按热度按时间nnsrf1az1#
所以我找到了一个解决方案,虽然不是很好,我最后给dpaste.com的维护者发了消息,所以我现在可以把我的文件上传到dpaste并再次下载。
我得到的GH操作看起来像这样:
然后稍后(时髦的黑客入侵)我使用IsaacShelton/update-existing-release的personal fork在我的版本描述中包含pastebin链接(我维护个人分支以进行一些与此问题无关的性能改进)。步骤如下:
在我的网站上,我有一个片段,比如:
把所有这些结合在一起,我可以使用这个片段来实际执行react中的
setState
: