I'm trying to pass in an API key through the URL parameters in my GET request.
However, I notice that Axios encodes the characters in my API key when sending the request. This causes the API to reject my request as it couldn't recognise my key.
How can I prevent Axios from encoding my GET parameters?
The difference between encodeURI and encodeURIComponent is encodeURIComponent encodes the entire string, where encodeURI ignores protocol prefix ('http://') and domain name. encodeURIComponent is designed to encode everything, where encodeURI ignores a URL's domain related roots.
You can use a custom param serializer as follows:
axios.get('https://foobar.com/api', { paramsSerializer: function(params) { var result = ''; // Build the query string return result; } });
paramsSerializer
can be set at the instance level:
var instance = axios.create({ paramsSerializer: function(params) { /* ... */ } })
or at the global level:
axios.defaults.paramsSerializer = function(params) { /* ... */ };
Another option is to directly add the api key to the URL:
axios.get('https://foobar.com/api?api_key=' + key);
You can add additional parameters using the `params' config option:
axios.get('https://foobar.com/api?api_key=' + key, { params: { foo: 'bar' } });
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