javascript - Express 应用程序上的空请求正文

标签 javascript reactjs express

当尝试对 express.js 服务器进行 POST 调用时,正文为空。

我正在使用 React 和 Express,所以我必须启用 CORS 以允许来自不同服务器的调用。代码如下:

express

var express = require("express"),
app = express(), 
bodyParser = require("body-parser"),
cors = require("cors");

app.use(bodyParser.urlencoded({extended: true}));
app.use(cors()); 

app.post("/register", function(req, res){
    console.log(req); 
});

app.listen(3000, function(){
    console.log("test started"); 
})

react

handleSubmit(event){
    console.log(this.state); 
    fetch('http://localhost:3000/register', {
        method: 'POST',
        headers: {
            'Accept': 'application/json'
            },
        body: {
            username: "asd",
            password: "asdd",
            }
    });
    event.preventDefault(); 
}

我在这里错过了什么?我用 'Content-Type': 'application/json' 完成了,结果是一样的。

最佳答案

您没有告诉您的 Express 服务器您将使用 JSON。为此,您需要在定义任何路由之前添加这一行:

app.use(bodyParser.json());

除此之外,您还需要JSON.stringify React 组件handleSubmit 方法中的正文有效负载,因为就目前而言,它不是有效的JSON。

最后,您必须设置的正确 header 是:

 'Content-Type': 'application/json'

因此您告诉服务器您正在发送 JSON 正文有效负载。

关于javascript - Express 应用程序上的空请求正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48570361/

相关文章:

javascript - 在 IFrame 中运行 JS 函数

reactjs - 在 NextJS 中使用持久布局和高阶函数

Node.js 快速应用程序缓存/页面加载缓慢(swig 模板引擎)

javascript - 将 sweetalert2 与 node.js 和express.js 一起使用

javascript - 数据表未定义样式和空行

javascript - 使用 Node 解析多个大型 JSON 文件到 mongoDB

javascript - 如何使用高库存在堆叠列中显示时间值

javascript - 在 react js中下载/保存文件

android - 尝试访问应用程序中的文件时出错

node.js - 监听 process.env.PORT 时 heroku 应用程序崩溃