Я использую nodejs в качестве бэкэнда и размещаю его в AWS. Я сделал эту конфигурацию в проекте узла:
app.use((req, res, next) => {
res.setHeader("Access-Control-Allow-Origin", "*");
res.setHeader(
"Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, Authorization"
);
res.setHeader(
"Access-Control-Allow-Methods",
"GET, POST, PATCH, PUT, DELETE, OPTIONS"
);
res.setHeader(
"Access-Control-Allow-Credentials",
"true"
);
next();
});
Интерфейс, который находится в корзине S3, создается с помощью Ioni c angular. И вот его конфигурация и перехватчик:
req = req.clone({
setHeaders : {
Authorization: "Bearer " + userToken,
'Content-Type': `application/json; charset=utf-8`
}
});
В корзину S3 (в которой размещен внешний интерфейс) я добавил эту конфигурацию в конфигурации CORS:
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://*</AllowedOrigin>
<AllowedOrigin>https://*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>POST</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Когда я запускаю приложение локально и подключить его к бэкэнду через прокси, все работает без проблем. Но когда я загружаю его и пытаюсь подключиться к бэкэнду, я получаю сообщение об ошибке:
«Ответ на предпечатный запрос не проходит проверку контроля доступа: нет заголовка« Access-Control-Allow-Origin » присутствует на запрошенном ресурсе. "
Что осталось в моей конфигурации и как ее решить?