异步

作者: 韩无仙 | 来源:发表于2019-12-19 16:31 被阅读0次
    <!DOCTYPE html>
    <html lang="en">
    
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Personal Song</title>
    </head>
    
    <body>
    
        <p>输入城市:<input type="text" id="city"></p>
        <button type="submit" onclick="getWeather()">查询</button>
        <p id="weatherInfo"></p>
    
    
        <script>
            function getWeather() {
                let url = 'https://www.apiopen.top/weatherApi?city=';
                let city = document.getElementById('city');
                let newURL = url + city.value;
                var xhr = new XMLHttpRequest();
                xhr.onreadystatechange = function () {
                    if (xhr.readyState === 4) {
                        if (xhr.status === 200) {
                            return success(xhr.responseText);
                        } else {
                            alert('查询失败!')
                        }
                    }
                }
                xhr.open('GET', newURL);
                xhr.send();
            }
    
            function success(data) {
                let weather = document.getElementById('weatherInfo');
                let weatherInfo = JSON.parse(data);
                if (weatherInfo.code === 200) {
                    weather.innerHTML = '查询成功' + '<br>' +
                        '当前城市:' + weatherInfo.data.city + '<br>' +
                        '当前温度:' + weatherInfo.data.wendu + '<br>' +
                        '气温:' + '最' + weatherInfo.data.forecast[0].high + ',最' + weatherInfo.data.forecast[0].low + '<br>' +
                        '天气:' + weatherInfo.data.forecast[0].type + '<br>' +
                        '风向:' + weatherInfo.data.forecast[0].fengxiang + weatherInfo.data.forecast[0].fengli + '<br>' +
                        '注意:' + weatherInfo.data.ganmao
                } else {
                    weather.innerText = weatherInfo.msg;
                }
            }
    
        </script>
    </body>
    
    </html>
    

    api来自开源社区apizza.使用XMLHttpRequest实现异步访问.

    相关文章

      网友评论

          本文标题:异步

          本文链接:https://www.haomeiwen.com/subject/udtvnctx.html