‘Access-Control-Allow-Origin’缺失。 我的下一步应该是什么?

我想从这里提取收益率曲线数据:

http://www.treasury.gov/resource-center/data-chart-center/interest-rates/pages/XmlView.aspx?data=yieldyear&year=2015

下面的get请求返回一个200(OK)状态代码,但也有一个控制台注释说Cross-Origin Request Blocked,因为缺少CORS头“Access-Control-Allow-Origin”。

$.get('http://www.treasury.gov/resource-center/data-chart-center/interest-rates/pages/XmlView.aspx?data=yieldyear&year=2015', function (data) { $(data).find("entry").each(function () { // or "item" or whatever suits your feed var el = $(this); console.log("------------------------"); console.log("d:NEW_DATE : " + el.find("d:NEW_DATE").text()); console.log("d:BC_1MONTH : " + el.find("d:BC_1MONTH").text()); console.log("d:BC_3MONTH : " + el.find("d:BC_3MONTH").text()); }); 

});

如果Access-Control-Allow-Origin未设置为’*’(公共),是否有关于访问数据的明确规则/法律?

达到这些问题时的共识是什么? 数据显然是公开的; 我是否要求美国财政部更改其Access-Control-Allow-Origin设置以包含我的域名? ( 访问控制 – 允许 – 来源多个源域? )。

很明显,在CORS之前还有解决方法( https://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/ )。 在这种情况下,它们是否合适/合法? 如果有的话,有人可以提供简明的资源来了解它们吗?

也许我应该放弃并找到一个新的数据源?

我用PHP解决了这个问题,可以从服务器端提取XML,而不是导致“Access-Control-Allow-Origin”问题的客户端javascript尝试。 代码在这里:

 $url = "http://www.treasury.gov/resource-center/data-chart-center/interest-rates/pages/XmlView.aspx?data=yieldyear&year=2015"; $xml = simplexml_load_file($url); echo $xml->asXML(); 

在我的研究中,我走了一段错误的轨道; 我正在寻找的国库收益率曲线数据是政府data.gov项目的一部分。 他们在这里有一个开发者网站。

我最初的想法是使用CKAN API,但似乎它们只在CKAN中存储元数据,而不是实际数据。