在快递应用程序上空请求正文

时间:2018-02-01 19:29:56

标签: javascript reactjs express

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

我使用react和express,所以我必须启用CORS才能允许来自不同服务器的呼叫。代码如下:

快速

unsigned long long

阵营

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"); 
})

我在这里缺少什么?我用handleSubmit(event){ console.log(this.state); fetch('http://localhost:3000/register', { method: 'POST', headers: { 'Accept': 'application/json' }, body: { username: "asd", password: "asdd", } }); event.preventDefault(); } 完成了它,结果是一样的。

1 个答案:

答案 0 :(得分:2)

您缺少告诉Express服务器您将使用JSON。要实现这一点,您需要在定义任何路径之前添加此行:

app.use(bodyParser.json());

除此之外,你需要在你的React的组件JSON.stringify方法中handleSubmit身体有效负载,因为它现在是正确的,它不是JSON有效的。

最后你要设置的正确标题是:

 'Content-Type': 'application/json'

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