如何用javascript下载这个文件?

时间:2014-04-07 02:27:19

标签: javascript xmlhttprequest download

我页面中的javascript需要下载位于以下位置的小文本文件(只是一个小JSON数组):

http://dadosabertos.rio.rj.gov.br/apiTransporte/apresentacao/rest/index.cfm/obterPosicoesDaLinha/410

文档的MIME类型为application/json。 我尝试了XMLHttpRequest但是我收到了一个错误:

XMLHttpRequest cannot load http://dados[...]/410. No 'Access-Control-Allow-Origin' header
is present on the requested resource. Origin 'null' is therefore not allowed access.

我用谷歌搜索了这个,解决方案指向CORS并改变服务器端的东西,这是我做不到的。

有没有办法用javascript(只有javascript)检索这些内容?

谢谢! 升。

修改

关注@naresh建议,我正在尝试使用JSONP。我将这些行添加到我的页面,但没有任何反应(甚至没有控制台错误):

var source = "http://dados[...]/409";
script = document.createElement('script');
script.type = 'text/javascript';
script.src = source + '?callback=downloadLinha';
document.body.appendChild(script);

我的功能downloadLinha(data)只是alert(data)

编辑2

我联系了服务器管理员,令我惊讶的是,他们在几个小时内修复了问题!我没想到他们甚至会回答。所以我的实际问题已经解决了,但是如果没有管理员干预,我找不到答案。

无论如何,非常感谢所有想要帮助的人!

2 个答案:

答案 0 :(得分:0)

类似于@RobertHarvey所说的,缺少标题并不能让你访问它......通过Chrome,就是这样。您仍然可以使用这个名为anyorigin的便捷工具访问它。

检查出来:http://anyorigin.com/

答案 1 :(得分:0)

不,不能做!如果可以,我会hava javascript默默地通过AJAX加载www.yourbank.com的内容并阅读它可以做的任何事情。不要认为这是一个危险的特征,因为网上自动登录很普遍吗?

您可以使用代理服务器,只要目标文件不依赖于特定于用户的cookie,标题等,它就可以正常工作。