我正在创建一个管理面板。
出于某种原因,我的代码返回一个错误,说被禁止的用户不存在,即使它在对象中。这让我很困惑,我不知道如何解决它。我最初得到的错误是
TypeError: Cannot read properties of undefined (reading 'forEach')
,并且当我记录密钥banned_users时,它返回undefined。我甚至试着在它之后将数据记录在控制台中,但其中仍然有密钥banned_users。
以下是我处理响应的代码:
fetch('/admin_info')
.then(response => response.json())
.then(data => {
console.log(data)
data.admins.forEach((admin) => {
var list_admin = document.createElement('li');
if (admin != data.owner && admin != data.admin_username) {
list_admin.className = 'list_admin';
list_admin.onclick = function (){
remove_admin(admin)
}
}
list_admin.id = `admin_${admin}`;
if (admin == data.owner){
list_admin.innerText = `${admin} (Owner)`
}else{
list_admin.innerText = admin
}
admin_list.appendChild(list_admin);
});
})
//Problem Code
banned_users = data.banned_users
console.log(data.banned_users)
banned_users.forEach((user) => {
var banned_user = document.createElement('li');
banned_user.className = 'banned_user';
banned_user.innerText = user
banned_user.appendChild(banned_list)
//
})
.catch(error => {
error_display.style.display = 'block';
error_text.innerText = `Admin Panel failed to load: ${error}`;
});
}
这是它作为响应接收的JSON:
"admin_username":"Username",
"admins":["Username1","Username2"],
"banned_users":{"test":{}},"owner":"Username"}
有人能解决这个问题吗?
编辑:我说data.banned_users或data[“banned_users”]也有问题,因为它没有从JSON中获取密钥,并且由于某种原因返回undefined