Я работаю над приложением, в котором серверная часть — Java, а интерфейс — JavaScript и SCSS. Определенный модуль приложения не возвращает данные, поскольку серверной части не удается подключиться к внешней части;
Доступ к XMLHttpRequest по адресу «https://dev-equity.aws.myurl.com/api/v2 ... 0&limit=20» из источника «https://dev-portal.aws.myurl.com» заблокирован политикой CORS: Ответ Предварительный запрос не проходит проверку контроля доступа: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin».
Я попросил разработчиков серверной части включить политики CORS на внутреннем API, чтобы обеспечить успешное подключение источников внешнего интерфейса.
Я также изменил свое развертывание и манифесты ConfigMaps для поддержки вспомогательного кода NGINX CORS
Может ли кто-нибудь помочь определить, что я делаю неправильно, чтобы исправить ошибку CORS?
package com.ap.domain.payment.config;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Arrays;
import java.util.List;
@Component
@Order(1)
public class CorsConfig implements Filter {
private static final List allowedOrigins = Arrays.asList(
"https://dev-portal.aws.myurl.com"
);
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) req;
HttpServletResponse response = (HttpServletResponse) res;
String origin = request.getHeader("Origin");
if (origin != null && allowedOrigins.contains(origin)) {
response.setHeader("Access-Control-Allow-Origin", origin);
response.setHeader("Vary", "Origin");
}
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS, PATCH");
response.setHeader("Access-Control-Max-Age", "86400");
response.setHeader("Access-Control-Allow-Headers", "Authorization, Content-Type");
if ("OPTIONS".equalsIgnoreCase(request.getMethod())) {
response.setStatus(HttpServletResponse.SC_OK);
return;
}
chain.doFilter(req, res);
}
}
Подробнее здесь: https://stackoverflow.com/questions/798 ... by-cors-po