Почему мой Ajax вызов не проходит через состояние готовности 1? - PullRequest
0 голосов
/ 16 января 2020

Мне кажется, что я все сделал правильно, но я не получаю ответа от моего Ajax звонка, что мне не хватает?

function loadMedia() {

const xhr = new XMLHttpRequest();

xhr.open('GET', 'https://pokeapi.co/api/v2/pokemon', true);
console.log(xhr.readyState);

xhr.onload = function() {
    if(xhr.status === 200 ) {
        console.log(true)
        let txt = JSON.parse(xhr.responseText);
        console.log(txt)
        for(let i in txt) {
            console.log(txt[i])
        }
    }
}
console.log(xhr.readyState)
xhr.send()
}

Он просто остается в состоянии готовности 1.

1 Ответ

0 голосов
/ 16 января 2020

xhr.readyState не поможет вам в том, как вы написали код, вы должны отладить, называется ли onload.

console.log(xhr.readyState); // sync
xhr.onload = function() {
   // async inside the function call, when onload
}; 
console.log(xhr.readyState) // sync, this isn't waiting AJAX response

Если вы положили console.log(xhr.readyState) в ваш обратный вызов Если он будет регистрировать другие значения, но не забывайте также обрабатывать onerror ...

Я бы предложил использовать addEventListener API слушателей вместо старых обработчиков событий моды.

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...