OpenWeatherMap返回错误的结果

时间:2017-02-22 17:33:25

标签: javascript ajax api

我从openweathermap.org收到错误的信息。 它将返回网站上给出的示例中显示的信息。

这是我的 HTML 代码:

<!DOCTYPE html>
<html>
    <head>
    <title>Your Weather</title>
        <meta charset="utf-8">
        <link rel="stylesheet" href="">
    </head>
    <body>
        <div>
        <h1>The Weather</h1>
            <div>
                <p>
                    <span id="show-weather"></span>
                    <span id="show-country"></span>
                </p>
            </div>
        </div>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        <script src="custom.js"></script>
    </body>
</html>

这是我的 JS 代码:

$(document).ready(function() {
    $.ajax({
        type: 'GET',
        data: {
            id: '2172797',
            appid: 'b1b15e88fa797225412429c1c50c122a1'
        },
        url: 'https://openweathermap.org/data/2.5/weather/',
        xhrFields: {
            withCredentials: false
        },
        headers: {},
        success: function(data) {

            $("#show-weather").text("Your location latitude is: " + data.coord.lat + " and longitude is: " + data.coord.lon);
            $("#show-country").text(" Your current location is: " + data.sys.name);

        },
        error: function(data) {

            console.log('error');
            console.log(data);
        },
    });
});

我无法获取城市名称或纬度或经度等当前信息。

2 个答案:

答案 0 :(得分:0)

name属性位于根级别,因此您需要使用data.name属性,如果需要国家/地区名称,则值应为data.sys.countryname

下没有名为data.sys的媒体资源

完整的工作代码:

&#13;
&#13;
$(document).ready(function() {
    $.ajax({
        type: 'GET',
        data: {
            id: '2172797',
            appid: 'b1b15e88fa797225412429c1c50c122a1'
        },
        url: 'https://openweathermap.org/data/2.5/weather/',
        xhrFields: {
            withCredentials: false
        },
        headers: {},
        success: function(data) {
//console.log(data);
            $("#show-weather").text("Your location latitude is: " + data.coord.lat + " and longitude is: " + data.coord.lon);
            $("#show-country").text(" Your current location is: " + data.sys.country);

        },
        error: function(data) {

            console.log('error');
            console.log(data);
        },
    });
});
&#13;
  <body>
        <div>
        <h1>The Weather</h1>
            <div>
                <p>
                    <span id="show-weather"></span>
                    <span id="show-country"></span>
                </p>
            </div>
        </div>
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
        
    </body>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您随请求一起发送的id查询参数是城市ID ...与api docs示例中使用的相同ID。更改ID或查看有关如何使用其他查询参数查询其他城市的文档。