Axios posting empty request


Axios posting empty request



I am trying to send an axios request to the backend, but it ends up having an empty body, and i do not understand why it does that.
This is the code for the request:


axios


body


axios.post('/register', {email: email, password: password, username: username, company: company}).then(response => {
console.log(response.data);
});



And this is the code for the backend:


authRouter.post('/register', (request, response) => {
console.log(request.body);

});



And this one outputs an empty request.body. I've also checked the JSON sent, and it is not empty at all. Is there a way to see what is the form of the request before being sent?
This authRouter is a module.export, that is being used by the main app module. This app module has this configuration:


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





Are you using body-parser properly?
– Patrick Roberts
Jul 2 at 21:10


body-parser





Do you have JSON parsing middleware?
– Jordan S
Jul 2 at 21:10





Yes, I edited my question to include app configuration.
– Justplayit
Jul 2 at 21:18


app





I'm guessing that the body-parser might be the issue, since on another occasion, I was using this module without urlencoded part, and I had no problem.
– Justplayit
Jul 2 at 21:19


body-parser


urlencoded





Or an axios header problem. I see that I should use Content-Type application/x-www-form-urlencoded, but isn't this axios default?
– Justplayit
Jul 2 at 21:22


axios


Content-Type application/x-www-form-urlencoded


axios




1 Answer
1



The issue came from the fact that body-parser wants an x-www-form-urlencoded request, and I wasn't providing one. I've set the header for the axios request to it, and the code looks like this:


body-parser


x-www-form-urlencoded


axios.post( '/register',
{email: email, password: password, username: username, company: company},
{headers: {'Content-Type': 'application/x-www-form-urlencoded'}}).then(response => {
console.log(response.data);
});






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

api-platform.com Unable to generate an IRI for the item of type

How to set up datasource with Spring for HikariCP?

Display dokan vendor name on Woocommerce single product pages