如何使用JavaScript将表单数据发送到服务器

如何使用JavaScript将表单数据发送到服务器,javascript,node.js,reactjs,express,fetch-api,Javascript,Node.js,Reactjs,Express,Fetch Api,我正在使用两台服务器,一台用于地址响应http://localhost:3000/contact 另一个是特快专递地址http://localhost:5000/. 我想通过一些HTTP请求方法将表单数据对象作为POST方法发送,但在后端得到的是空对象 我有一个带有onSubmit事件的简单表单,它首先创建一个具有表单数据值的对象: const data = { firstInput: evt.target.elements.firstInput.value, secondInp

我正在使用两台服务器,一台用于地址响应http://localhost:3000/contact 另一个是特快专递地址http://localhost:5000/. 我想通过一些HTTP请求方法将表单数据对象作为POST方法发送,但在后端得到的是空对象

我有一个带有onSubmit事件的简单表单,它首先创建一个具有表单数据值的对象:

const data = {
    firstInput: evt.target.elements.firstInput.value,
    secondInput: evt.target.elements.secondInput.value
}
注意:我使用DevTools和React-Dev工具测试了在这里之前是否可以获取所有数据,直到这里它工作得很好

第二个服务器使用Express,它只有一个简单的端点,该端点应接收此数据或至少打印我在req.body对象中发送的内容:

注2:还测试了该端点,它工作正常,但req.body得到一个空对象

我已经测试了以下几种方法:

本机获取API:

错误:

另外,在FetchAPI上尝试了异步/等待方法,但我不确定是否在React组件上使用它

我也试过了,但我也试过了

我想我的第一个问题是如何将正确格式化的数据从组件端发送到服务器端。无论如何,谢谢。

使用这个软件包 您可以这样使用:

import queryString from 'query-string';
fetch('url here', {
    method: 'POST',
    headers: {'Content-Type':'application/x-www-form-urlencoded'}, // this line is important
    body: queryString.stringify({for:'bar', blah:1}
});
fetch("http://localhost:5000/", {
    method: "POST",
    headers: {
        Accept: "application/json",
        "Content-Type": "application/json"
    },
    body: JSON.stringify(data)
    }).then(res => {
        console.log(res);
    });
import queryString from 'query-string';
fetch('url here', {
    method: 'POST',
    headers: {'Content-Type':'application/x-www-form-urlencoded'}, // this line is important
    body: queryString.stringify({for:'bar', blah:1}
});