2017-02-11 29 views
1

你好,我找到了一个教程,介绍如何使用地下天气API创建一个简单的天气应用程序。我从字面上复制了整个代码(只进行了很小的修改),以查看应用程序的功能,但不起作用。有关HTML是在这里:AJAX API代码检查?地下天气api?

<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显示和加载我与说“成功”的警告招呼,表明检索地理位置不是问题。但是文字并没有改变来显示天气:/所以这是我需要审查的代码的一部分。

我在想我必须正确地关闭所有的东西,或者我如何使用$ .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

浏览器的开放式控制台'SHIFT + CTRL + C'(或'Shift +⌘+ C'得到了实际的API密钥进行更换)并告诉我们那里有什么错误。 –

+0

控制台不显示任何东西,这也令我困惑 – mraaron

回答

0

我觉得你的问题是在这里:

var key = "MYKEY" 
    var Weather = "http://api.wunderground.com/api/MYKEY" + 
    "/forecast/geolookup/conditions/q/" + 
    Geo.lat + "," + Geo.lng + ".json"; 

你错过了 “;”密钥声明和分配后。而你的天气网址是错误的,你没有通过API密钥。它应该是:

var Weather = "http://api.wunderground.com/api/”+ key +”/forecast/geolookup/conditions/q/" + Geo.lat + "," + Geo.lng + ".json"; 

和重点应与您从https://www.wunderground.com签约

+0

该分号可能是问题,哇,我不能相信我让它滑倒。是的,我在密钥中传入了实际的代码,我只是为了隐私而在“MYKEY”中进行了攻击。但是,谢谢队友! – mraaron