通过XMLHttpRequest将数据发布到节点

时间:2016-02-22 23:00:01

标签: ajax node.js post express

我正在尝试使用以下代码通过XMLHttpRequest将数据发布到表单:

function submitForm(event) {
  event.preventDefault();
  var data = new FormData(form);
  var request = new XMLHttpRequest();
  request.onreadystatechange = function(e) {
    var formattedEmails = Object.keys(request.responseText);
    formattedEmails.forEach(function(email) {
      messages.addMessage(email.to, email.subject, email.message);
    });
  };
  request.open(form.method, form.action);
  request.setRequestHeader('content-type', 'application/x-www-form-urlencoded');
  request.send(data);
}

当我这样做时,数据会像这样进入

{ '------WebKitFormBoundarywGy70eJqwXdEVot5\r\nContent-Disposition: form-data; name':'"emails"\r\n\r\n      Ben,Hernandez,b****@gmail.com\r\n      Ann,M*****,a****@gmail.com\r\n    \r\n------WebKitFormBoundarywGy70eJqwXdEVot5\r\nContent-Disposition: form-data; name="subject"\r\n\r\nhi {first}!\r\n------WebKitFormBoundarywGy70eJqwXdEVot5\r\nContent-Disposition: form-data; name="message"\r\n\r\nHello {first} {last} {email}\r\n------WebKitFormBoundarywGy70eJqwXdEVot5\r\nContent-Disposition: form-data; name="submit"\r\n\r\nPreview\r\n------WebKitFormBoundarywGy70eJqwXdEVot5--\r\n' }

这似乎是一个非常长的数据串,我需要以某种方式格式化?当我删除上面的代码并允许表单只是像form.action页面那样定期提交。我得到了回复:

{ emails: 'Ben,Hernandez,b****@gmail.com\r\nAnn,M****,a***@gmail.com\r\n',
subject: 'hi {first}!',
message: 'Hello {first} {last} {email}',
submit: 'Preview' }

这绝对是我想要的。如何从上面的荒谬字符串中提取它或更改我的发布请求,以便我得到更易于管理的内容。

应注意后端在节点上表达。

谢谢!

1 个答案:

答案 0 :(得分:0)

我最终放弃了

Car

然后手动将我的params字符串放在一起。如果有人知道如何做到这一点,我仍然对答案感兴趣。

相关问题