<!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实现异步访问.