没有从openweather.com使用JSON获取数据

时间:2017-09-09 02:51:24

标签: javascript jquery json ajax

我想借助地理位置(线性和经度)从openweather.com api获取天气信息。我无法理解为什么它没有获取数据。这是我的代码:

function getWeather(lat, long){
  console.log(lat +" "+ long); //23.8008983 90.3541741
  $.getJSON("http://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"&units=imperial&APPID=7a26948f2294e4d5754c951a6aaf7cf8", function(json) {  
    console.log("Successfully data recieved");
    var temp = Math.round(json.main.temp);
    console.log(temp);
    $("#weather").value(temp);
  });

我尝试打印"成功接收数据"在控制台但它不打印。我假设回调没有发生。确认函数调用(getWeather())没问题,因为我得到纬度和经度的值(我将这些值保留在注释中)。我非常需要你的帮助。我在浏览器中手动输入了纬度和经度的url,它返回了我应该从这个JSON调用得到的预期输出。但是没有在代码中工作。

2 个答案:

答案 0 :(得分:0)

我搞砸了一下,并意识到有时这是最简单的解决方案...尝试请求安全( https )网址:

$.getJSON("https://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"&units=imperial&APPID=7a26948f2294e4d5754c951a6aaf7cf8", function(json) {  
    console.log("Successfully data recieved");
    var temp = Math.round(json.main.temp);
    console.log(temp);
    $("#weather").value(temp);
  });

答案 1 :(得分:0)

你的功能没有正确关闭,你错过了结尾}大括号(我猜这是一个错字)。我已经尝试过你的代码,它对我来说就像一个魅力。还要确保你的` jquery 库完全包含在内。

<!doctype html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>jQuery.getJSON demo</title>
    <style>
        img {
            height: 100px;
            float: left;
        }
    </style>
    <script src="https://code.jquery.com/jquery-1.10.2.js"></script>
</head>
<body>
<script>
    (function() {
        getWeather(23.8008983,90.3541741);
    })();


    function getWeather(lat, long){
        var watherAPI = "http://api.openweathermap.org/data/2.5/weather?lat="+lat+"&lon="+long+"&units=imperial&APPID=7a26948f2294e4d5754c951a6aaf7cf8";
        $.getJSON( watherAPI, function (json) {
            console.log("Successfully data recieved");
            var temp = Math.round(json.main.temp);
            console.log(temp);
        })}
</script>

</body>
</html>