Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.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 显示来自JSON的图像_Javascript_Ajax_Json - Fatal编程技术网

Javascript 显示来自JSON的图像

Javascript 显示来自JSON的图像,javascript,ajax,json,Javascript,Ajax,Json,尝试用结果显示封面艺术。img src标记中的某些内容导致应用程序无法加载。如果我只是将img指向data.tracks[I].album.name(显然不是一个真正的url,但足以测试它是否工作),它会很好地粘贴它,但当我将其更改为粘贴url时,整个应用程序就会停止工作 $('#findTracks').click(function (e) { e.preventDefault(); // override/don't submit form

尝试用结果显示封面艺术。img src标记中的某些内容导致应用程序无法加载。如果我只是将img指向data.tracks[I].album.name(显然不是一个真正的url,但足以测试它是否工作),它会很好地粘贴它,但当我将其更改为粘贴url时,整个应用程序就会停止工作

$('#findTracks').click(function (e) {
                e.preventDefault(); // override/don't submit form
                $('#recommendations').empty();
                var artist = $('#artist').val();
                var userid = "";
                var playlistid = "";

                $.ajax({
                    url: 'http://ws.spotify.com/search/1/track.json?q=' + artist,
                    type: 'GET',
                    dataType: 'json',
                    success: function(data) {
                        if (data.tracks.length > 0) {
                            var tracksLength = data.tracks.length, html = '';
                            for (var i=0; i<tracksLength; i++) {
                                var href = '';
                                if (data.tracks[i].album.availability.territories.indexOf(' GB ') !== -1) { // data.tracks[i].href
                                    href = data.tracks[i].href;
                                    href = 'makeReq(\''+data.tracks[i].name + ' by '+data.tracks[i].artists[0].name+'\')';
                                    html += '<li><a href="#" onclick="' + href + '">' +data.tracks[i].name + ' by '+data.tracks[i].artists[0].name+ ' <img src="' +data.tracks[i].album.images[0].url+ '" /></a>';html += '</li>';

                                    html += '</li>';
                                }
                            }
                            $('#third').css('display', 'block');
                            $('#recommendations').append(html);
                        } else {
                            $('#recommendations').append('<li>No matches returned.</li>');
                            $('#third').css('display', 'none');
                        }
                    },
                    error: function(err) {
                        alert("The Spotify API failed to return a response.");
                    }
                });                   
            });
$('findTracks')。单击(函数(e){
e、 preventDefault();//重写/不提交表单
$(“#建议”).empty();
var artist=$('#artist').val();
var userid=“”;
var playlid=“”;
$.ajax({
网址:'http://ws.spotify.com/search/1/track.json?q="艺术家,,
键入:“GET”,
数据类型:“json”,
成功:功能(数据){
如果(data.tracks.length>0){
var tracksLength=data.tracks.length,html='';

对于(var i=0;i如果您在控制台中查看,就会得到错误

Uncaught TypeError: Cannot read property '0' of undefined
查看查询返回的数据,我们注意到data.tracks[i].album返回

{
    "released": "2006",
    "href": "spotify:album:2knAf4wg8Gff8q1bXiXCTz",
    "name": "The Dutchess",
    "availability": {
        "territories": "MX"
    }
}
没有属性
图像
,因此当您调用

data.tracks[i].album.images[0]
您得到未定义的错误,导致脚本停止执行。
我不熟悉spootify api,但快速浏览一下api,这是它的最终目的。以下是我获得专辑艺术的方法

$.get(“http://ws.spotify.com/search/1/track.json?q=Fergie,函数(数据){
var albumId=data.tracks[97].album.href.split(“:”[2];
$.get(”https://api.spotify.com/v1/albums/“+albumId,函数(albumResponse){
var firstImage=albumResponse.images[0];
$('body')。追加($('body')


你在看html吗?img src怎么说?这很奇怪,它应该得到图片@TimothyRichardElliot我已经添加了一个关于你链接的api的编辑,下一个问题是如何让它发送到我的电子邮件…我最初创建了一个脚本,将所请求的歌曲直接发送到“请求”我的spotify帐户上的播放列表,但后来我意识到这需要oauth…现在我正试图通过php将其传递到我的电子邮件中