我想从这里提取收益率曲线数据:
下面的 get 请求返回 200(正常)状态代码,但也显示一条控制台注释,指出跨域请求被阻止,因为缺少 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 未设置为“*”(公共),是否有关于访问数据的明确规则/法律?
在解决这些问题时,大家的共识是什么?数据明确公开;我是否要求美国财政部更改其访问控制允许来源设置以包含我的域? (访问控制允许来源多源域? https://stackoverflow.com/questions/1653308/access-control-allow-origin-multiple-origin-domains).
同样明显的是,在 CORS 之前就有解决方法(https://www.nczonline.net/blog/2010/05/25/cross-domain-ajax-with-cross-origin-resource-sharing/ 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 项目的一部分。他们有一个供开发人员使用的网站here https://www.data.gov/developers/open-source.
我最初的想法是使用CKAN API http://docs.ckan.org/en/latest/api/index.html%0A但他们似乎只在 CKAN 中存储元数据,而不是实际数据。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)