【发布时间】:2021-03-15 14:25:15
【问题描述】:
我正在尝试向后端发送一个axios 请求,但它最终有一个空的body,我不明白为什么会这样。
这是请求的代码:
axios.post('/register', {email: email, password: password, username: username, company: company}).then(response => {
console.log(response.data);
});
这是后端的代码:
authRouter.post('/register', (request, response) => {
console.log(request.body);
});
这个输出一个空的request.body。我还检查了发送的JSON,它根本不是空的。有没有办法在发送之前查看请求的形式?
这个authRouter 是一个module.export,被app 主模块使用。这个app 模块有这样的配置:
app.use(express.static("public"));
app.use(session({ secret: "shh", resave: false, saveUninitialized: false }));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(passport.initialize());
app.use(passport.session());
app.set('views', __dirname + '/views');
app.set('view engine', 'pug');
app.use(authRouter);
https.createServer({key: fs.readFileSync('ssl/key.pem'), cert: fs.readFileSync('ssl/cert.pem')}, app).listen(8080);
【问题讨论】:
-
您是否正确使用
body-parser? -
你有JSON解析中间件吗?
-
是的,我编辑了我的问题以包含
app配置。 -
我猜
body-parser可能是问题所在,因为在另一种情况下,我使用这个模块没有urlencoded部分,我没有问题。 -
或
axios标头问题。我看到我应该使用Content-Type application/x-www-form-urlencoded,但这不是axios默认吗?