Javascript I';我在get请求后获取未定义的元素
我使用JSON发布和请求邮件,当我发布邮件时,我没有收到错误,但请求不起作用,如果我在控制台中输入相同的请求代码,它将返回请求的邮件,但仍然返回我在下面提到的相同错误 邮件投递请求(未显示任何错误)Javascript I';我在get请求后获取未定义的元素,javascript,json,Javascript,Json,我使用JSON发布和请求邮件,当我发布邮件时,我没有收到错误,但请求不起作用,如果我在控制台中输入相同的请求代码,它将返回请求的邮件,但仍然返回我在下面提到的相同错误 邮件投递请求(未显示任何错误) 函数发送电子邮件(){ var recipient=document.querySelector(“#撰写收件人”).value; var subject=document.querySelector(“#compose subject”).value; var body=document.quer
函数发送电子邮件(){
var recipient=document.querySelector(“#撰写收件人”).value;
var subject=document.querySelector(“#compose subject”).value;
var body=document.querySelector(“#compose body”).value;
var recipients=recipient.split(“,”)
用于(收件人中的电子邮件){
获取(“/emails”{
方法:“POST”,
正文:JSON.stringify({
收件人:收件人[电子邮件],
主题:主题,,
身体:身体
})
})
.then(response=>response.json())
。然后(结果=>{
//打印结果
控制台日志(结果);
如果(结果['error']){
document.querySelector('#error_msg').innerHTML=
`
${result.error}
`;
}
否则{
加载_邮箱(“已发送”);
}
});
}
}
获取请求
console.log正常工作,但(sender.innerHTML=emails[mail].sender)返回错误
错误是:
未捕获(承诺中)TypeError:无法读取inbox中未定义的属性“sender”。js:49
fetch(`emails/${mailbox}`)
.then(response=>response.json())
。然后(电子邮件=>{
控制台日志(电子邮件)
如果(emails.length==0){
emails_view.innerHTML+='没有要查看的电子邮件';
}
否则{
用于(电子邮件中的邮件){
console.log(电子邮件[mail].sender);
var mail=document.createElement(“div”);
var sender=document.createElement(“h3”);
var subject=document.createElement('p');
var time=document.createElement('p');
sender.innerHTML=电子邮件[mail]。发件人;
subject.innerHTML=电子邮件[mail].subject;
time.innerHTML=电子邮件[mail]。时间戳;
}
}
});
您必须更加小心您的变量名<无法定义(电子邮件中的邮件){和var mail=document.createElement(“div”);
电子邮件[mail]。发件人
无法定义,因为您使用mail:domeElement
覆盖mail:number
…如果emails
是一个数组,最好使用for(让电子邮件的邮件){console.log(mail.sender);const mailWrapper=document.createElement(“div”);…}
注意对中的而不是的更改。
function send_email() {
var recipient = document.querySelector('#compose-recipients').value;
var subject = document.querySelector('#compose-subject').value;
var body = document.querySelector('#compose-body').value;
var recipients = recipient.split(',')
for (email in recipients){
fetch('/emails', {
method: 'POST',
body: JSON.stringify({
recipients: recipients[email],
subject: subject,
body: body
})
})
.then(response => response.json())
.then(result => {
// Print result
console.log(result);
if (result['error']){
document.querySelector('#error_msg').innerHTML =
`<div class="alert alert-danger" role="alert">
${result.error}
</div>`;
}
else {
load_mailbox('sent');
}
});
}
}
fetch(`emails/${mailbox}`)
.then(response => response.json())
.then(emails => {
console.log(emails)
if(emails.length === 0){
emails_view.innerHTML += '<p>No emails to see</p>';
}
else{
for(mail in emails){
console.log(emails[mail].sender);
var mail = document.createElement("div");
var sender = document.createElement("h3");
var subject = document.createElement('p');
var time = document.createElement('p');
sender.innerHTML = emails[mail].sender;
subject.innerHTML = emails[mail].subject;
time.innerHTML = emails[mail].timestamp;
}
}
});