API GET 200 OK, ale nie wczytuje danych

0

Cześć,

mam taki problem - próbuję wczytać dane z api do tagu h1 i dostaję odpowiedź 200 z serwera.
Nie mam żadnych błędów w konsoli, a mimo to dane się nie wczytują.
Proszę o wskazówkę, w którym miejscu jest błąd.
Kod:

$(function(){

  //VARIABLES//

  var pokeUrl = 'http://pokeapi.co/api/v2/evolution-chain/4/';
  var mainHeader = $('h1');
  var mainList = $('ul').addClass('main_list');
  var evolution = $('.evolution-chain');

  mainHeader.attr('data','id');

  //MAIN FUNCTION//

    function main(pokemon){
        for(var i in pokemon){
          mainHeader.text(pokemon[i].species.name);
        }
    }

  //AJAX GET//

    function getPokemons(){

        $.ajax({
           method: 'GET',
           url: pokeUrl,
           dataType: 'json'
        }).done(function(pokemon){
           main();
        }).fail(function(error){
           console.log(error);
        });
      }

    getPokemons();

})

0

Do funkcji main nie przekazujesz żadnych danych. Poza tym masz tylko jeden nagłówek h1, więc wyświetli Ci się tylko nazwa ostatniego pokemona bo wszystkie pozostałe zostaną nadpisane.

Po przejrzeniu API, nie dostajesz na odpowiedzi tablicy tylko "obiekt" więc ta iteracja po pokemon trochę nie ma sensu.

0

Okej funkcje zmieniłem.
Co do nagłówka, to nic mi się nie wyświetla i nie rozumiem w jaki sposób miała by być nadpisywana ta nazwa, skoro pobieram nazwe tylko z jednego obiektu a nie ze wszystkich

0

Ok w takim razie jak inaczej mógłbym pobrać nazwę do nagłówka?

1

Zrób sobie w tym then coś takiego:

console.log(pokemon); (zobaczysz w konsoli przeglądarki to co zwróciło API)
potem zrób sobie

const name = (np. pokemon.name) // ale to jest błędne

i kombinuj tak żeby się udało ;)

w {} są obiekty, w [] tablice, do właściwości obiektów odwołujesz się po kropce np. jeżeli odpowiedź z api wyglądała by tak:

{"name":"john"}

to:

const name = pokemon.name;

jeżeli tak:

{"humans":[{"name":"john"}]}

to:

const name = pokemon.humans[0].name;

PS. tak potem zobaczyszłem, że pobierasz nazwę jednego - w takim razie zupełnie niepotrzebny jest ten for, ale potrzebne są "kombinacje" o których piszę wyżej tak żeby dotrzeć do tekstu który chcesz wyświetlić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1