您好我发现了一个如何使用地下天气API创建简单天气应用程序的教程。我真的复制了整个代码(只需要很小的修改)来看看应用程序的运行方式,但它不起作用。相关的html在这里:
<div class="container">
<div id="forecast">
<h1>Weather at <span id="location">
</span></h1>
<div id="imgdiv">
<img id="img" src=""/>
</div>
<p>It is currently <span id="temp">
</span> degrees F with <span id="desc">
</span></p>
<p>Wind: <span id="wind">
</span></p>
</div>
</div>
我的JavaScript就在这里:
$(document).ready(function() {
var Geo = {};
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(success, error);
}
else {
alert("Geolocation off");
}
function error() {
alert("We couldn't find you");
}
function success(position) {
Geo.lat = position.coords.latitude;
Geo.lng = position.coords.longitude;
alert("Success");
var key = "MYKEY"
var Weather = "http://api.wunderground.com/api/MYKEY" +
"/forecast/geolookup/conditions/q/" +
Geo.lat + "," + Geo.lng + ".json";
$.ajax({
url: Weather,
dataType: "jsonp",
success: function(data) {
var location = data["location"]["city"];
var temp = data["current_observation"]["temp_f"];
var img = data["current_observation"]["icon_url"];
var desc = data["current_observation"]["weather"];
var wind = ["current_observation"]["wind_string"];
$("#location").html(location);
$("#temp").html(temp);
$("#desc").html(desc);
$("#wind").html(wind);
$("#img").attr("src", img);
},
fail: function() {
alert("Nah son");
}
})
}
})
HTML显示并在加载时我会收到一条提示&#34;成功&#34;,表示检索地理位置不是问题所在。但是文字并没有改变以显示天气:/所以这是我需要审核的代码的一部分。
我认为我必须在正确关闭所有内容或使用$ .ajax()方面遇到问题,因为这会导致我在其他项目中遇到很多问题。最近工作。
任何帮助他都非常感激!我是编码的新手,所以如果我在那里某处犯了一个愚蠢的错误,我会道歉。虽然只是从其他来源复制并添加警报和更改警报文本,但我认为不存在重大缺陷。
以下是我用来构建此代码的文章的链接:http://www.developerdrive.com/2014/09/how-to-build-a-weather-app-with-html5s-geolocation-api/
这是地下天气的API文档:https://www.wunderground.com/weather/api
感谢您的帮助!
答案 0 :(得分:0)
我认为你的问题在这里:
var key = "MYKEY"
var Weather = "http://api.wunderground.com/api/MYKEY" +
"/forecast/geolookup/conditions/q/" +
Geo.lat + "," + Geo.lng + ".json";
你错过了“;”在密钥申报和转让之后。你的天气网址是错误的bcz你没有通过api密钥。它应该是:
var Weather = "http://api.wunderground.com/api/”+ key +”/forecast/geolookup/conditions/q/" + Geo.lat + "," + Geo.lng + ".json";
密钥应替换为您在https://www.wunderground.com
注册时获得的实际API密钥