我想创建一个应用程序,使用darksky.com API显示用户位置的当前天气。但是现在我甚至无法将温度打印到控制台上。这是我的代码:
var link = "https://api.darksky.net/forecast/037352c0951701a563b624359ea6111f"; //link with key
getLocation();
function getLocation() {
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition);
}
}
function showPosition(position) {
link += "/" + position.coords.latitude + "," + position.coords.longitude; //getting the coordinates
$.getJSON( "https://crossorigin.me/https://api.darksky.net/forecast/037352c0951701a563b624359ea6111f/42.3601,-71.0589" , function( json.current.weather ) { console.log( "JSON Data: " + json); })
});
}
答案 0 :(得分:1)
您发生了一些语法错误。您有太多括号,并且您尝试在getJSON响应中使用点对象表示法。使用function(json) {
,您的函数参数就像一个别名。 json.property不会做任何事情,会导致错误。
如果您的响应对象有current.weather,那么该语法是正确的,但它需要嵌套在回调函数中。对于前..
$.getJSON(url, function(json) {
var data = json.current.weather;
console.log("JSON Data:", json, data);
});