I'm making a post request using Axios and this call returns data in the response headers and body. In the headers, it's returning an x-auth-token
and I want to get the value of this token but it returns:
undefined is not an object
Here is how I'm doing it:
axios.post('app.com/api/login', data)
.then(response => {
console.log(response.headers.get("x-auth-token"));
})
.catch(error => {
console.log(error)
});
First, you import React and Axios so that both can be used in the component. Then you hook into the componentDidMount lifecycle hook and perform a GET request. You use axios. get(url) with a URL from an API endpoint to get a promise which returns a response object.
Axios parses the response based on the HTTP response's Content-Type header. When the response's content type is application/json , Axios will automatically try to parse the response into a JavaScript object. Keep in mind that the response headers are sent by the server.
In the Github comment, it's clearly mentioned how to retrieve the headers see
fetchFromServer = async(data) => {
const response = await axios.post(url, data, headers)
console.log(response.headers)
}
If you could see all the headers in your log you can try either of these to get the data from the response. To check the keys available in your response you can try
console.log(Object.keys(response.headers))
console.log(response.headers.your_required_key
(For example response.headers.token)
console.log(response.headers["your_required_key"]
if the above fails. (console.log(response.headers["content-type"])
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With