My postmapping “login” in my controller is returning a 200. But I’m getting undefined and I believe it is from my axios call. I know that the undefined error is being reported from the catch block in the console
Axios call –
submit() {
let formData = new FormData();
formData.set("email", this.email)
formData.set("password", this.password)
formData.set("staySignedIn", this.staySignedIn)
// When the client/server sides are running from the same port (AWS) the url for this api call should be changed to /api/v1/login
axios.post("http://localhost:8080/api/v1/login", formData,
{headers: {'Content-Type': 'application/json'}})
.then(function (res) {
console.log(res); // test
if (res.data.code === 200) {
this.router.push('/dashboard')
console.log("success");
} else {
console.log(res.data.code);
}
})
.catch(function (err) {
console.log(err);
})
}
Advertisement
Answer
Axios response schema documentation is here
Unless you have a key code in your controller response, response.data.code will be undefined.
Try res.status instead if you want to check the HTTP status.
axios.post("http://localhost:8080/api/v1/login", formData,
{headers: {'Content-Type': 'application/json'}})
.then(function (res) {
if (res.status === 200) {
this.router.push('/dashboard')
console.log("success");
} else {
console.log(res.status);
}
})
.catch(function (err) {
console.log(err);
})
EDIT You seem to be sending back the password back in the response. Even though the password is encrypted, better restrict exposing it in the response.