javascript - HTML 页面不显示该城市不存在
问题描述
我正在尝试制作一个显示天气预报的网站。它已经显示了天气预报。如果我想进入一个不存在的城市,我希望出现一条消息。我已经尝试过使用 404 的东西,但它没有出现在控制台日志中。我希望有一个人可以帮助我。先感谢您!
function getData() {
let apikey = 'private';
var city = document.querySelector('#city').value;
let requestURL = 'https://api.openweathermap.org/data/2.5/forecast?q='+city+'&appid='+apikey+'&units=metric';
let request = new XMLHttpRequest();
request.open('GET', requestURL, true);
request.responseType = 'json';
request.send();
request.onload = function () {
let data = request.response;
addData(data);
var body = document.querySelector('body');
var div = document.createElement('div');
for (var i = 0; i < data.list.length; i += 8) {
// console.log(data.list[i].dt_txt);
div.appendChild( createEL('p',
'<b>Date en time: ' + data.list[i].dt_txt+'<br></b>'+
'City: ' + city+'<br>'+
'Country: ' + data.city.country + '<br>'+
'Temperature: ' +data.list[i].main.temp+'<br>'+
'Weather: ' +data.list[i].weather[0].main));
}
if (XMLHttpRequest == '404'){
console.log("Doesn't exist")
}
var body = document.querySelector('body');
body.appendChild(div);
function createEL(tag, content){
var el = document.createElement(tag);
el.innerHTML = content;
return el;
}
}
}
var button = document.querySelector('#show');
button.addEventListener("click", function (ev) {
ev.preventDefault();
getData();
},false);
function addData(jsonData) {
var city = document.querySelector('#city').value;
var input = document.querySelector('#city');
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Weather</title>
</head>
<body>
<h1>Weather</h1>
City: <input type="text" id="city" name="city" placeholder="city">
<button id="show" name="show">Show</button>
<script src="js/weather.js"></script>
</body>
</html>
解决方案
XMLHttpRequest
永远不会等于404
。它是您用来创建发出 HTTP 请求的对象的构造函数!
你需要检查request.status
。
推荐阅读
- java - 谷歌使用 Firebase 登录时的唯一 ID
- java - 如何在 rpm-maven-plugin 中使用运行时环境变量
- python - 如何在字符串中间用前导零填充数字?
- python-3.x - 导入错误:在 conda 环境中更新 python 时无法导入名称“secure_write”
- angular - 离子 ngModel ngModel 不适用于 Form
- javascript - 如何让 Figma API 与 Google App-script API 一起使用?
- javascript - 单击按钮添加“未定义”而不是项目
- vba - 使用双 where 子句访问动态过滤列表框
- r - 使用 stat_summary 绘制中位数的位置
- git - CircleCI 忽略 git 标签过滤器