Chrome / Safari中显示的Dark Sky API数据,但不会显示在手机上(Ionic 2)

时间:2017-03-10 08:12:09

标签: api cors ionic2

我一直在测试从https://api.darksky.net/获取天气数据。 经过研究,在我的提供者中,我使用this.http.get,我的代码如下:

let url = 'https://cors-anywhere.herokuapp.com/https://api.darksky.net/forecast/a470b5427c601724577e80b8bc4d2d03/37.8267,-122.4233'
let response = this.http.get(url).map(res => res.json());
return response;

它显示在Chrome / Safari上,您注意到我的网址添加了“https://cors-anywhere.herokuapp.com/”。它很成功,非常好。我告诉你图像:

看,我有温度和总结。位置我使用Google API,这就是为什么不提。

好的,真正的问题在这里。我离子上传,我想在Ionic View中看到它。汤姆非常惊讶,除了时钟和单词“in”外,它没有显示任何数据。我删除https://cors-anywhere.herokuapp.com/它似乎也没用。依然没有。你能帮帮我吗?

我真的非常感谢你。

*没有人回复我:(但是没关系,如果它在React Native中怎么办?

1 个答案:

答案 0 :(得分:0)

HTTP方法是异步的。就你如何实际显示数据而言,你还没有真正提供太多的东西,但这就是我如何去做。

this.http.get(url)
    .map(res => res.json())
    .subscribe(data => {
        console.log(data); //here's your response
        return data;
    });

正如我所说,这是异步的,所以我不确定当你返回上面response时是否知道。这就是我放入console.log行的原因,以便您可以看到它获取数据。

请记住,darksky也有速率限制。我认为它每天可以拨打1000个免费电话,然后进入付费电话。因此,如果您在没有任何付款细节的情况下轰炸他们的服务器,那么您将被切断。