Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript I';我在get请求后获取未定义的元素_Javascript_Json - Fatal编程技术网

Javascript I';我在get请求后获取未定义的元素

Javascript I';我在get请求后获取未定义的元素,javascript,json,Javascript,Json,我使用JSON发布和请求邮件,当我发布邮件时,我没有收到错误,但请求不起作用,如果我在控制台中输入相同的请求代码,它将返回请求的邮件,但仍然返回我在下面提到的相同错误 邮件投递请求(未显示任何错误) 函数发送电子邮件(){ var recipient=document.querySelector(“#撰写收件人”).value; var subject=document.querySelector(“#compose subject”).value; var body=document.quer

我使用JSON发布和请求邮件,当我发布邮件时,我没有收到错误,但请求不起作用,如果我在控制台中输入相同的请求代码,它将返回请求的邮件,但仍然返回我在下面提到的相同错误

邮件投递请求(未显示任何错误)

函数发送电子邮件(){
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;
            }
        }
  });