我页面中的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
我联系了服务器管理员,令我惊讶的是,他们在几个小时内修复了问题!我没想到他们甚至会回答。所以我的实际问题已经解决了,但是如果没有管理员干预,我找不到答案。
无论如何,非常感谢所有想要帮助的人!
答案 0 :(得分:0)
类似于@RobertHarvey所说的,缺少标题并不能让你访问它......通过Chrome,就是这样。您仍然可以使用这个名为anyorigin的便捷工具访问它。
答案 1 :(得分:0)
不,不能做!如果可以,我会hava javascript默默地通过AJAX加载www.yourbank.com
的内容并阅读它可以做的任何事情。不要认为这是一个危险的特征,因为网上自动登录很普遍吗?
您可以使用代理服务器,只要目标文件不依赖于特定于用户的cookie,标题等,它就可以正常工作。