TypeError:data.data [i] .caption为null Instagram api

时间:2017-08-11 07:51:00

标签: javascript api instagram

$(function() {

    $.ajax({
        type: "GET",
        dataType: "jsonp",
        cache: false,
        url: "https://api.instagram.com/v1/users/self/media/recent/?access_token=",
        success: function(data) {
            for (var i = 0; i < 20; i++) {
                $("#pics").append("<a target='_blank' href='" + data.data[i].link + "'><img src='" + data.data[i].images.low_resolution.url + "'></img></a>");
                $("#text").append("<p>"+data.data[i].caption.text+"</p>");


            }
        }
    });
});

我尝试获取Instagram Feed api,代码工作正常,但我有错误TypeError: data.data[i].caption is null,Feed文本没有显示所有我只在json中获得3个表单20元素。

data json link

2 个答案:

答案 0 :(得分:1)

如果您查看回复,您会发现它只是表示没有标题(例如,查看数字3)

尝试这样的事情:

for (var i = 0; i < 20; i++) {
    $("#pics").append("<a target='_blank' href='" + data.data[i].link + "'><img src='" + data.data[i].images.low_resolution.url + "'></img></a>");
    if (data.data[i].caption === null) {
        $("#text").append("<p>No caption</p>");
    } else {
        $("#text").append("<p>"+data.data[i].caption.text+"</p>");
    }
}

答案 1 :(得分:0)

原因是某些标题在响应中为data[3]data[4]为空。在检索text对象

中的caption之前执行空检查
for (var i = 0; i < 20; i++) {
      if (res.data[i].caption !== null) {
        console.log(res.data[i].caption.text);
      }

    }