Javascript 为什么我会得到;forEach不是XMLHttpRequest.request.onload中的函数;错误?
我正在尝试使用riot api,但一直在使用。每一个都不是函数错误。你们能帮帮我吗?我的Js代码:Javascript 为什么我会得到;forEach不是XMLHttpRequest.request.onload中的函数;错误?,javascript,json,Javascript,Json,我正在尝试使用riot api,但一直在使用。每一个都不是函数错误。你们能帮帮我吗?我的Js代码: const app = document.getElementById('resultContainer') const results = document.createElement('div') results.setAttribute('class', 'results') app.appendChild(results) var request = new XMLHttpRequest
const app = document.getElementById('resultContainer')
const results = document.createElement('div')
results.setAttribute('class', 'results')
app.appendChild(results)
var request = new XMLHttpRequest()
request.open('GET', 'https://europe.api.riotgames.com/lor/ranked/v1/leaderboards?api_key=APIKEY', true)
request.onload = function() {
var data = JSON.parse(this.response)
if (request.status >= 200 && request.status < 400) {
data.forEach((players) => {
const results = document.createElement('div')
results.setAttribute('class', 'results')
const h1 = document.createElement('h1')
h1.textContent = players.name
const p = document.createElement('p')
rank = players.rank.substring(0, 300)
p.textContent = `${players.rank}...`
results.appendChild(card)
results.appendChild(h1)
results.appendChild(p)
})
} else {
console.log('Error')
}
}
request.send()
因为当您将响应解析为
JSON
时,它会创建一个对象,而不是数组
您需要在该对象的players
属性上使用forEach
,即data.players。forEach
简短的回答是响应不是数组,它显然是一个对象forEach
只能在Array
s上使用
data: {players: Array(1155)}