【问题标题】:Posting data to node via XMLHttpRequest通过 XMLHttpRequest 将数据发布到节点
【发布时间】:2016-06-04 14:05:57
【问题描述】:

我正在尝试使用以下代码通过 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' }

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

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

谢谢!

【问题讨论】:

    标签: ajax node.js post express


    【解决方案1】:

    我最终放弃了

    var data = new FormData(form);
    

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

    【讨论】:

      猜你喜欢
      • 2020-11-01
      • 2011-04-22
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多