异步

2019-12-19  本文已影响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实现异步访问.

上一篇下一篇

猜你喜欢

热点阅读