2016-01-21 59 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並且做了這個魔術。

相關問題