jsonp jquery获取instagram结果无法读取未定义的属性“链接”

时间:2015-07-22 10:22:06

标签: javascript jquery ajax

我在控制台中看到错误,我不知道如何解决它,我收到错误:

  

无法读取未定义的属性“链接”

然而,它正好工作拉动图像和链接所以有点丢失...

任何想法?

$.ajax({
    type: "GET",
    dataType: "jsonp",
    cache: false,
    url: "https://api.instagram.com/v1/users/self/media/recent/?access_token=266454510.1677ed0.f66c5bc93aed4040a9392cdebfae5d63&count=9",
    success: function(data) {
        //console.log(data);
        for (var i = 0; i < 10; i++) {
            //console.log(data.data[i]);
            $(".instagram-photos").append("<a target='_blank' href='" + data.data[i].link + "'><img src='" + data.data[i].images.low_resolution.url + "'></img></a>");
        }
    }
});

3 个答案:

答案 0 :(得分:1)

因为你的error: no matching function for call to 'readPattern' note: candidate template ignored: substitution failure[ with r = 3, c = 4 ] template<int r, int c> void readPattern(const matrix<r,c> &pattern) 循环没有检查数组中是否存在元素。您假设for数组中始终存在 10 元素。但是,有时候,可能会有少于10个元素,并且您的循环将失败。使循环中的条件更具动态性。

data

应该是:

for (var i = 0; i < 10; i++) {
    // Code Here
}

答案 1 :(得分:0)

你应该做的是找出哪些属性未定义,以及为什么。

可能未定义的事情:

  • data

  • data.data

  • data.data[i].link

这也可能与你的for循环有关,为什么你认为data.data的长度是10?

见:

for (var i = 0; i < 10; i++) {

为什么不使用

for (var i = 0; i < data.data.length; i++) {

对我来说也有点意见,你为什么要使用data.data?这真令人困惑。 您应该使用data.item[i]或给出第一个data其他名称。 这不是必须的,但如果你想让其他人去&#34;喜欢&#34;那肯定是应该的。你的编码方式:)。

答案 2 :(得分:0)

这是因为只有9个link属性。

您可以像

一样修改循环
for (var i = 0; i < 9; i++)