Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/412.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
javascript检索json Darksky.com API数据天气_Javascript_Jquery_Json_Api - Fatal编程技术网

javascript检索json Darksky.com API数据天气

javascript检索json Darksky.com API数据天气,javascript,jquery,json,api,Javascript,Jquery,Json,Api,我试图从Darksky.com的API中检索JSON数据,这是一种天气数据,在此之前,我成功地从freegoip.com API中检索到了纬度和经度 然而,Darksky API在响应所需的天气数据之前需要经度和纬度。这里的问题是,在提供了所需的数据之后,我无法从Darksky检索JSON数据(温度、当前天气状态),即使我遵循了检索第一个数据的相同说明。任何想法都是值得欣赏的,以下是我的代码片段: $(文档).ready(函数(){ var darkSkyKey=“c565381ee9bf05

我试图从Darksky.com的API中检索JSON数据,这是一种天气数据,在此之前,我成功地从freegoip.com API中检索到了纬度和经度

然而,Darksky API在响应所需的天气数据之前需要经度和纬度。这里的问题是,在提供了所需的数据之后,我无法从Darksky检索JSON数据(温度、当前天气状态),即使我遵循了检索第一个数据的相同说明。任何想法都是值得欣赏的,以下是我的代码片段:

$(文档).ready(函数(){
var darkSkyKey=“c565381ee9bf05151d254ffa7ca96313”;
var regionLink=”http://freegeoip.net/json/";
$.getJSON(regionLink,函数(数据){
var国家代码=data.country\u代码;
var country=data.country\u name;
var ip=data.ip;
var时区=data.time\u zone;
var纬度=data.latitude;
var longitude=data.longitude;
});
$.get(regionLink,函数(响应){
$(“#位置”).html(“位置:“+response.city+”,“+response.region_name+”。纬度:“+response.Latitude+”,经度:“+response.longitude”);
}“jsonp”);
var weatherLink=”https://api.darksky.net/forecast/c565381ee9bf05151d254ffa7ca96313/“+纬度+”,“+经度+”.json”;
$.getJSON(weatherLink,函数(data2){
var时区=data2.0时区;
var温度=当前温度;
var status=data2.summary;
});
$.get(weatherLink,函数(response2){
$(“#temp”).html(“现在的温度是:”+response2.temperature);
$(“#weather”).html(“天气状态:+response2.Status”);
}“jsonp”);
});
正文{
背景色:黑色;
}
.座右铭{
利润上限:-21px;
字体系列:“考山体”,草书;
颜色:橙色;
文本对齐:居中;
字体大小:53px;
}
.背线{
显示:块;
保证金:自动;
}
.中线{
利润上限:-29px;
高度:260px;
对齐项目:居中;
}
.weatherimage{
背景色:当前颜色;
边界半径:113px;
边框:2倍纯色橙色;
位置:相对位置;
高度:262px;
显示:块;
保证金:自动;
宽度:40%;
动画名称:脉冲;
动画迭代次数:无限;
}
.imgPartlycloudy{
高度:250px;
左边缘:35%;
位置:绝对位置;
}
.imgRain{
高度:250px;
左边缘:35%;
位置:绝对位置;
显示:无;
}
.imgCloudy{
高度:250px;
左边缘:35%;
位置:绝对位置;
显示:无;
}
imgSunny先生{
高度:250px;
左边缘:35%;
位置:绝对位置;
显示:无;
}
.最后一行{
高度:222px;
}
.城市{
颜色:橙色;
字体大小:22px;
字体系列:“考山体”,草书;
}
.温度{
颜色:橙色;
字体大小:22px;
字体系列:“考山体”,草书;
}
.地位{
颜色:橙色;
字体大小:22px;
字体系列:“考山体”,草书;
}
.要素{
文本对齐:居中;
}

欢迎使用天气应用程序
天气状况
城市
温度

您的问题是darksky站点不允许跨域请求

这段代码的工作原理是我使用代理服务来服务结果

getLocation()
            .then(function (data) {

                var url ='https://crossorigin.me/https://api.darksky.net/forecast/c565381ee9bf05151d254ffa7ca96313/' + data.latitude + ',' + data.longitude;
                getDarkSky(url)
                    .then(function (res) {
                        console.log(res)
                    }).catch(function (err) {
                    console.log(err)
                })
            });


        function getLocation() {
            return $.getJSON(rl).done()
        }

        function getDarkSky(url) {

            return $.getJSON(url).done()
        }
有关完整解决方案,请参阅此SA帖子

请您详细说明我尝试使用的最后两个函数,但将数据输入htm,但我仍然无法从API检索数据。只需调用请求的URL,即可使用.done()表示数据检索已完成。这允许您使用callfunction()在主函数中等待结果;对不起,这对我来说有点棘手。。。。那么,我应该在哪里实现我的代码($(“#temp”).html(“Temprature now is:+response2.temperature”))以在我的页面上显示它呢?用代码替换console.log(res),res.variable将包含来自darksky的返回