HTML-страница не показывает, что город не существует - PullRequest
0 голосов
/ 13 апреля 2019

Я пытаюсь сделать сайт, который показывает прогноз погоды.Это уже показывает прогноз погоды.Если я хочу ввести город, который не существует, я хочу, чтобы появилось сообщение.Я уже пробовал что-то с 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>

Ответы [ 2 ]

1 голос
/ 13 апреля 2019

XMLHttpRequest никогда не будет равно 404. Это функция конструктора, которую вы использовали для создания объекта, который сделал HTTP-запрос!

Вам нужно проверить request.status.

0 голосов
/ 13 апреля 2019

Вам необходимо проверить request.status, отправляете ли вы код состояния из API.

let request = new XMLHttpRequest()
console.log(request.status);

Для отображения не существует, вы можете проверить длину данных ответа, как

if(data.list.length==0)
{
    console.log("Does not exists.");
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...