我使用NYT API來獲取文章的縮略圖/圖像。但是我得到一些圖像的Cannot read property "url" of undefined
錯誤。這是終端的截圖。API縮略圖返回TypeError:無法讀取未定義的「url」
既然說的「網址」是不確定的,我決定檢查(在我的功能)的影像源是否返回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