Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我无法从spotify的API获取图像_Javascript_Json_Spotify - Fatal编程技术网

Javascript 我无法从spotify的API获取图像

Javascript 我无法从spotify的API获取图像,javascript,json,spotify,Javascript,Json,Spotify,我正在尝试创建一个网站,通过SpotifyWebAPI,我可以显示某个元素(艺术家、曲目、专辑等)的信息。然而,在回答对象的背景中,我想设置Spotify直接提供的图像,但经过几次尝试后,我仍然无法设置。 这是我的职责 function ricercaArtista(){ var xhr = new XMLHttpRequest(); var artist =document.getElementById("artista").value; xhr

我正在尝试创建一个网站,通过SpotifyWebAPI,我可以显示某个元素(艺术家、曲目、专辑等)的信息。然而,在回答对象的背景中,我想设置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();
    }
函数ricercaArtista(){
var xhr=new XMLHttpRequest();
var artist=document.getElementById(“artista”).value;
xhr.onreadystatechange=函数(){
如果(xhr.readyState==4&&xhr.status==200){
var response=JSON.parse(xhr.responseText);
var结果=“”;
对于(var i=0;i'+
'受欢迎程度:'+response.artists.items[i].受欢迎程度+'
'+ “类型:”+response.artists.items[i]。类型+”; } 警觉的 document.getElementById(“艺术家”).innerHTML=结果; } }; xhr.open('GET',”https://api.spotify.com/v1/search?q=“+artist+”&type=artist&market=IT&limit=10&offset=5”,正确); setRequestHeader('Accept','application/json'); setRequestHeader('Content-Type','application/json'); xhr.setRequestHeader('授权','承载人Bchanz_1kZFp_6rNx7jWXz-wfK9KTp2gTmuviXisgsJy8IAjnF_HBO701Y5UMU7VIFB0VAKG6WBACLQMHFNUBJZGZZPT1M8UAWGEKWDVMZIEH-S6ECFNEVFC38W38W3Q_JGDNOVDULEK2F463HNPOC4XB2UA'); xhr.send(); }
Chrome控制台的错误是:
Index.html:29未捕获类型错误:无法读取XMLHttpRequest.xhr处未定义的属性“url”。onreadystatechange
@Pointy是正确的,某些记录在图像路径上具有空数组。 看看下面的fetch,它返回不同的记录来搜索Bob marley。 您可以在控制台中看到结果。 在这种情况下,您需要检查图像路径是否为空,并执行一些操作

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));

该错误表示
response.artists.items[i].images[1]
未定义。为什么
[1]
?你知道至少会有两张图片吗?(JavaScript数组从0开始,而不是1。)是的,在json响应中有3个值,但显然没有,否则就不会出现该错误。您可以添加一个显式测试,以确保在尝试访问“url”属性之前获得的每个“项”都有图像。