Здравствуйте, возникла проблема с получением данных по api.
Делаю запрос (убрал все лишнее для удобства):
try {
fetch(API_SERVER)
.then(response => {
if (response.ok) {
return response.json()
.then(products => {
console.log(products)
})
} else {
console.log(new Error(response.status));
}
});
} catch (err) {
alert(err);
}
И получаю ошибку:
Failed to load https://apiName: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:3000' is therefore not allowed access. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
localhost/:1 Uncaught (in promise) TypeError: Failed to fetch
Если делаю fetch(API_SERVER, {mode: 'no-cors'}), то вообще не понимаю, что происходит.
console.log(new Error(response.status)); в консоль выводит Error: 0
Сначала думал, что дело в localhost, но при загрузке на хостинг ошибка та же. Скачал расширение для Chrome Allow-control-allow-origin *, при включенном расширении при mode: 'cors' ошибки никакой нет.
Подскажите, пожалуйста, в чем проблема может быть и как ее решить?
Ошибка заключается в том что API которая Вам должна ответить, не добавляет в заголовок: Access-Control-Allow-Origin, следственно безопасность браузера не позволит Вам принять данный запрос.
API которая должна Вам ответить должна иметь настроенный CORS.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей