Meteor js使用http.get从网页中检索json数据

时间:2014-08-17 21:33:46

标签: json meteor

是否可以在客户端使用HTTP.get来检索一些json数据并将其存储为字符串?

我需要从此站点https://blockchain.info/address/15cNko3ZtmYCba8GoaYsZ6GWFy1VCLgFji?format=json获取JSON并将其存储为字符串以供稍后解析。

钱包的上述网站地址是随机选择的。

2 个答案:

答案 0 :(得分:0)

您可以在客户端上执行HTTP.getAs per the documentation它可用Anywhere(客户端和服务器)

但是,您提供的示例与您的应用不在同一个域中,并且未提供Access-Control-Allow-Origin标头以允许跨域请求。 So requests from the client will fail.

From Wikipedia:

  

相同的原始策略会阻止从一个文档或脚本加载的文档或脚本   来自获取或设置文档属性的来源   起源。此政策可以追溯到Netscape Navigator 2.0。

答案 1 :(得分:0)

尝试在应用程序开发标签中的浏览器控制台中输入$.ajax("https://blockchain.info/address/15cNko3ZtmYCba8GoaYsZ6GWFy1VCLgFji?format=json");

您可能会收到此错误作为回复:

XMLHttpRequest cannot load https://blockchain.info/address/15cNko3ZtmYCba8GoaYsZ6GWFy1VCLgFji?format=json. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access.

这是一个与CORS相关的问题,这本身就是一个完整的主题所以我建议你谷歌这个并理解其含义。

接下来,如果您可以控制尝试从中获取json的域上的CORS设置,那么您需要允许来自Web应用程序域的跨源请求,这可以在使用亚马逊S3存储桶时使用,另一个网络你设计的应用程序等......

如果你不能,那么我担心你必须使用Meteor.method客户端到达你的Meteor服务器,你将用HTTP.get获取json然后将它发送回Meteor客户端