Recently, I wanted to get data from a third-party API using Axios. I've got a CORS error. So I decided to use fetch()
instead.
Here is the code. Function that uses fetch()
:
// function that uses fetch()
export default async function () {
let ipData = await fetch(
'https://api.ipdata.co/?api-key=<key>'
);
let parsedIpData = await ipData.json();
console.log(parsedIpData);
if (parsedIpData && parsedIpData.languages) {
parsedIpData.languages.forEach((lang) => {
if (lang.code == 'en' || lang.code == 'ru') {
console.log('lang.code - ' + lang.code);
return lang.code;
} else {
console.log('fallback locale - en');
return 'en';
}
})
} else {
console.log('no response. fallback locale - en');
return 'en';
}
}
Function that uses Axios:
// function that uses Axios
export default async function () {
axios.get(
'https://api.ipdata.co/?api-key=<key>'
).then((response) => {
if (response && response.languages) {
response.languages.forEach((lang) => {
if (lang.code == 'en' || lang.code == 'ru') {
console.log('lang.code - ' + lang.code);
return lang.code;
} else {
console.log('fallback locale - en');
return 'en';
}
})
} else {
console.log('no response. fallback locale - en');
return 'en';
}
}).catch((error) => {
console.log(error);
})
}
And here is my error. I've tried to pass headers to axios.get()
already, but the server didn't allow them.