【问题标题】:Meteor js use http.get to retrieve json data from a webpageMeteor js 使用 http.get 从网页中检索 json 数据
【发布时间】:2014-08-17 21:33:46
【问题描述】:

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

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

上面的钱包地址是随机选择的。

【问题讨论】:

    标签: json meteor


    【解决方案1】:

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

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

    From Wikipedia:

    同源策略防止从一个文件或脚本加载 源自从另一个文档获取或设置文档的属性 起源。该政策可以追溯到 Netscape Navigator 2.0。

    【讨论】:

      【解决方案2】:

      尝试在应用程序开发选项卡的浏览器控制台中输入$.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 存储桶时是可能的,另一个 Web您设计的应用程序等...

      如果你不能,那么恐怕你将不得不使用 Meteor.method 客户端来访问你的 Meteor 服务器,在那里你将使用 HTTP.get 获取 json 然后将其发送回 Meteor 客户端.

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-07-26
        • 2018-08-06
        • 2012-11-07
        相关资源
        最近更新 更多