【发布时间】:2018-07-03 15:56:16
【问题描述】:
我已经编写了大部分代码,但我不确定我在这方面做错了什么:
let url = 'https://cors-anywhere.herokuapp.com/https://newsapi.org/v2/top-headlines?sources=hacker-news&apiKey=3dcfcd098261443dae7c7d002f25c062';
fetch(url)
.then(r =>{
return r.json();
})
.then(data => {
let articles = data.articles;
let storyList = document.createElement("ul");
let body = document.querySelector("body");
body.appendChild(storyList);
})
articles.map(articles => {
let storyItem = document.createElement("li");
storyItem.innerHTML = 'a href = "' + articles.href + '">' + articles.title + "</a>";
storyList.appendChild(storyItem);
})
.catch(e => {
console.log('An error has occurred: ${e}');
});
我从 API 代码中取出了 < > 并尝试切换一些东西,比如切换一些属性来表达不同的意思,但是有人可以帮助我更好地理解这一点吗?提前致谢!
【问题讨论】:
-
看起来你在使用
articles,然后才被填充。 -
不仅如此,您还在定义
articles的范围之外使用它。 -
当您获取的资源允许 cors 并且您可以直接获取它时,为什么要使用“cors-anywhere.herokuapp.com”?为什么在不使用返回值的情况下使用
map来迭代articles 数组,而不是forEach? -
@gforce301 好吧,我正在做一个编码训练营,所以我们还没有讨论“forEach”。我正在使用“cors-anywhere.herokuapp.com”,因为这就是检查点中示例的设置方式。
标签: javascript fetch-api urlfetch