我正在尝试阅读以下美联储网址中的通胀时间序列:
https://fred.stlouisfed.org/data/CPIAUCSL.csv
首先要注意的是,此URL是公开的,可以手动下载数据。我也可以很容易地从R命令行下载它:
> url = 'https://fred.stlouisfed.org/data/CPIAUCSL.csv'
> dfr = read.csv(url_sl)
> head(dfr)
DATE VALUE
1 1947-01-01 21.48
2 1947-02-01 21.62
3 1947-03-01 22.00
4 1947-04-01 22.00
5 1947-05-01 21.95
6 1947-06-01 22.08
但是,当我尝试从D3.js读取此URL时,出现错误。下面我显示D3代码,然后显示从我的Chrome浏览器复制的错误消息。
代码:
<!DOCTYPE html>
<html>
<head>
<script src="http://d3js.org/d3.v4.min.js"></script>
</head>
<body>
</body>
<script>
//Program works if I read file from disk.
//d3.csv('CPIAUCSL.csv', function(error, data) {
d3.csv('https://fred.stlouisfed.org/data/CPIAUCSL.csv', function(error, data) {
if (error) throw error;
data.forEach(function(d) {
console.log(d);
});
});
</script>
</html>
错误讯息:
XMLHttpRequest cannot load https://fred.stlouisfed.org/data/CPIAUCSL.csv. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.
随后:
经过反思,我怀疑这不是一个D3问题,而是一个Javascript问题,或一般的网络编程问题。因此,我在此问题中添加了标记Javascript。