Я не смог получить изображение из API Spotify - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь создать сайт, на котором через веб-API Spotify я отображаю информацию определенного элемента (Artist, Track, Album и т. Д.).Однако на фоне объекта ответа я хотел бы установить изображение, предоставляемое непосредственно Spotify, но после нескольких попыток я все еще не могу.Это моя функция.

function ricercaArtista(){
        var xhr = new XMLHttpRequest();
        var artist =document.getElementById("artista").value;
        xhr.onreadystatechange = function() {
            if (xhr.readyState == 4 && xhr.status == 200) {
            var response = JSON.parse(xhr.responseText);
            var result = '';
            for(var i = 0; i < response.artists.items.length; i++){
                console.log(response.artists.items[i]);             
                result +='<div class="panel panel-primary" style="background:url('+
                response.artists.items[i].images[1].url+');"><div class="panel-body">' + 
                'name : ' + response.artists.items[i].name + '<br/>' +                  
                'popularity : ' + response.artists.items[i].popularity + '<br/>' + 
                'type : ' + response.artists.items[i].type + '</div></div>';
            }   
           alert
            document.getElementById("artists").innerHTML = result;
            }   
        };
        xhr.open('GET', "https://api.spotify.com/v1/search?q="+artist+"&type=artist&market=IT&limit=10&offset=5", true);
        xhr.setRequestHeader('Accept', 'application/json');
        xhr.setRequestHeader('Content-Type', 'application/json');
        xhr.setRequestHeader('Authorization', 'Bearer BQAnHZ_1kZFp_6rNx7jWXz-wfK9KTp2gTmuviXisgsJy8IAjnF_Hbo701Y5UMu7viFb0vaKG6wBAcLQMhfNUBjzGZpt1M3UaWGEKWDVmziEh-s6ECFNeVFCifdD3C38w3q_jGdnovDUlek2f463hnyPUlpoC4xb2uA');
        xhr.send();
    }

ошибка консоли Chrome: Index.html:29 Uncaught TypeError: Cannot read property 'url' of undefined at XMLHttpRequest.xhr.onreadystatechange

1 Ответ

0 голосов
/ 02 июня 2018

@ Пойнт прав, у некоторых записей есть пустой массив на пути к изображению.Посмотрите на выборку ниже, она возвращает разные записи для поиска Боба Марли.Вы можете увидеть результат в консоли.в этом случае вам нужно проверить путь к изображению, если он пуст. Сделайте что-нибудь.

fetch("https://api.spotify.com/v1/search?q=bob marley&type=artist&market=IT&limit=10&offset=5")
.then(res=> res.json())
.then(data=> console.log(data.artists.items))
.catch(err=> console.log(err));
...