I am trying to post on an API with some query params. This is working on PostMan / Insomnia when I am trying to by passing mail and firstname as query parameters :
However, when I am trying to do it with my react native app, I got a 400 error (Invalid Query Parameters).
This is the post method :
.post(`/mails/users/sendVerificationMail`, { mail, firstname
})
.then(response => response.status)
.catch(err => console.warn(err));(my mail and firstname are console.logged as follow: and myFirstName).
So I don't know how to pass Query Parameters with Axios in my request (because right now, it's passing data: { mail: "", firstname: "myFirstName" }.
3 Answers
axios signature for post is axios.post(url[, data[, config]]). So you want to send params object within the third argument:
.post(`/mails/users/sendVerificationMail`, null, { params: { mail, firstname
}})
.then(response => response.status)
.catch(err => console.warn(err));This will POST an empty body with the two query params:
2POST
As of 2021 insted of null i had to add {} in order to make it work!
axios.post( url, {}, { params: { key, checksum } } ) .then(response => { return success(response); }) .catch(error => { return fail(error); }); In my case, the API responded with a CORS error. I instead formatted the query parameters into query string. It successfully posted data and also avoided the CORS issue.
var data = {}; const params = new URLSearchParams({ contact: this.ContactPerson, phoneNumber: this.PhoneNumber, email: this.Email }).toString(); const url = "" + params; axios .post(url, data, { headers: { aaid: this.ID, token: this.Token } }) .then(res => { this.Info = JSON.parse(res.data); }) .catch(err => { console.log(err); });