将FormData发送到节点服务器 - 无法以x-www-form-urlencoded格式获取它

时间:2017-05-19 04:31:03

标签: javascript

我正在尝试从表单发送数据,将其发送到服务器,然后服务器将向外部API发出请求。服务器检索到该数据后,服务器会将其发送到浏览器进行操作和显示。我正在调用的REST API要求数据采用x-www-form-urlencoded格式。但是,表单会以多部分/表单数据格式发送。

从我读过的内容来看,我无法使用HTML表单发送数据,因为我从服务器请求数据并且需要能够处理响应。

HTML:

    <form id="myForm" action="/" method="POST" enctype="application/x-www-form-urlencoded">
      <input type="text" placeholder="URL to parse" name="url"></input>
      <input type="submit" value="Submit"></input>
    </form>

客户端JS:

const form = document.forms['myForm'];

form.addEventListener('submit', event => {
  event.preventDefault();
  var data = new FormData(form),
      thisMethod = form.getAttribute('method'),
      thisAction = form.getAttribute('action'),
      url = data.get('url');

  data.append('url', url);

  fetch(thisAction, {
    method: thisMethod,
    headers: {
      "Content-Type": "application/x-www-form-urlencoded"
    },
    body: data
  }).then(res => console.log(res)).catch(e => console.log(e));
});

任何人都知道问题是什么?当我使用Postman并使用x-www-form-urlencoded格式时,一切都很完美。

0 个答案:

没有答案