使用js直接从html中的url读取csv
Read csv directly from url in html using js
我正在开发html&js中,我以表格格式显示雅虎金融股票。数据以csv格式获取。我想让js直接从url 读取数据
url为http://ichart.finance.yahoo.com/table.csv?s=RIL.BO
我尝试从stackoverflow获得的代码在localhosturl中工作。
var txtFile = new XMLHttpRequest();
txtFile.open("GET", "http://ichart.finance.yahoo.com/table.csv?s=RIL.BO", true);
txtFile.onreadystatechange = function() {
if (txtFile.readyState === 4) { // Makes sure the document is ready to parse.
if (txtFile.status === 200) { // Makes sure it's found the file.
allText = txtFile.responseText;
lines = txtFile.responseText.split("'n"); // Will separate each line into an array
alert(allText);
}
}
}
感谢
为了绕过同源策略设置的跨域请求限制,您需要一个允许您执行JSONP请求或已启用CORS的端点。不幸的是,雅虎!财务端点两者都没有。
所以,正如詹姆斯提到的,你是一个中间人
通常,我对此的建议是使用YQL,它允许您快速轻松地构建一个位于您和金融网站之间的服务器。事实上,他们已经有了雅虎!金融端点,确切地说,你正试图获得的数据:链接
然而,由于这可能不可靠,我也有一个网站刮刀,我在各种项目中都使用过。它托管在Heroku上,允许您从任何网站获取几乎任何内容。我不建议在大容量项目中使用它,但对于偶尔的数据获取,它非常棒。在你的情况下,你会这样使用它:
http://websitescraper.herokuapp.com/?url=http://ichart.finance.yahoo.com/table.csv?s=RIL.BO&callback=jsCallback
编辑:ichart.finance.yahoo.com已被弃用,因此此操作失败。将其保存在此处以供参考
既然你已经解决了这个问题,我建议你使用jQuery和csv到数组插件:
jQuery.getJSON('http://websitescraper.herokuapp.com/?url=http://ichart.finance.yahoo.com/table.csv?s=RIL.BO&callback=?', function (csvdata) {
console.log(csvdata.csvToArray());
});
此外,如果你想推出自己的中间人,你可以使用我创建的网站scraper。源代码在GitHub上,它是在MIT许可证下发布的。
您正在尝试执行跨域请求,因此请求被阻止。
您将需要编写一个服务器端脚本来为您获取数据。
- 重定向javascript中的Url
- 如何从django中的url解析javascript字符串
- 如何从java中的URL读取JavaScript响应
- 如何重定向当前选项卡'Chrome扩展中的url
- 如何使用phonegap从android中的URL下载文件
- 是否可以添加<脚本>添加'_someTag'到iFrame中的URL
- Django中的URL检测和缩短
- 从Javascript中的URL获取参数
- css中的url用angular重写
- Url.Content中的Url不匹配
- 如何获取目录中的URL字符串
- 是否可以更改更改特定事件在地址栏或浏览器中的URL
- 如何在 javascript 中的 url 回调函数中传递参数
- SEO机器人是否总是遵循A标签的href属性中的URL,即使点击/点击被Javascript拦截
- 如何在地址栏中的URL更改Firefox JPM时获得通知
- 将注释中的URL解析为链接
- Javascript:我如何自动打开链接中的url链接
- 获取angularjs中的URL部分
- HTML-从javascript中的URL位置读取.txt文件
- 将函数本身设置为AJAX中的url