2016-01-21 48 views
0

我使用NYT API来获取文章的缩略图/图像。但是我得到一些图像的Cannot read property "url" of undefined错误。这是终端的截图。API缩略图返回TypeError:无法读取未定义的“url”

Screenshot

既然说的“网址”是不确定的,我决定检查(在我的功能)的影像源是否返回undefined

var prefix = "http:\/\/static01.nyt.com\/"; 
var src = prefix + data.multimedia[2].url; 
if(!src || src == undefined) { src = "img/img-nyt.png"; } 
else { imgSource = src; } 
console.log(imgSource); 

但我不知道的为什么它仍然会返回undefined,因为如果是,那么图像源应该更改为img-nyt.png

这里的样品JSON要求:

"results": [ 
    { 
     "multimedia":[ 
      { 
       "url":"http:\/\/static01.nyt.com\/images\/2016\/01\/20\/us\/20michigan-web\/20michigan-web-thumbStandard.jpg", 
       "height":75, 
       "width":75, 
      }, 
      { 
       "url":"http:\/\/static01.nyt.com\/images\/2016\/01\/20\/us\/20michigan-web\/20michigan-web-thumbLarge.jpg", 
       "height":150, 
       "width":150, 
      }, 
      { 
       "url":"http:\/\/static01.nyt.com\/images\/2016\/01\/20\/us\/20michigan-web\/20michigan-web-articleInline.jpg", 
       "height":127, 
       "width":190, 
      } 
     ] 
    } 
] 

这是我的,从这个JSON获取价值功能的全功能:

// MAKES THE REQUEST AND DISPLAYS THE NEWS BASED ON RESULTS 
    function searchArticles(term) { 
     viewing.innerHTML = term; 
     term = term.replace(/ /g, "+"); 
     searchURL = "http://api.nytimes.com/svc/search/v2/articlesearch.json?q=" + term + "&api-key=" + searchAPI; 
     var prefix = "http:\/\/static01.nyt.com\/"; 
     mainDivToAppendTo.innerHTML = null; 
     $.getJSON(searchURL, function(api) { 
      var i = 0; 
      api.response.docs.forEach(function(data) { 
       link = data.web_url; 
       var src = prefix + data.multimedia[2].url; 
       if(!src || src == undefined) { src = "img/img-nyt.png"; } 
       else imgSource = src; 
       console.log(imgSource); 
       cardTitle = (data.headline.main.length > 43) ? data.headline.main.substring(0, 43) + " .." : data.headline.main; 
       postedBy = "In " + data["section_name"]; 
       i++; 
       createCardElements(); 
      }); 
      numberOfPosts.innerHTML = i + " results"; 
     }); 
    } 

我似乎无法找出什么地方错了这个。也许我只是错过了一些非常明显的东西。希望我能得到一些帮助..

这里就是整个:

http://api.nytimes.com/svc/search/v2/articlesearch.json?q=donald-trump&api-key=sample-key

回答

0

而不是检查,如果data.multimedia[0].url == undefined 我需要检查,如果data.multimedia[0] == undefined:你可以看看样品URL。

我仍然收到错误,因为它试图从一个未定义的对象中获取URL并且做了这个魔术。

相关问题