У нас есть некоторые защищенные ресурсы, которые нам нужны для включения CORS. Эти ресурсы могут быть получены/созданы с помощью get и post.
Для обработки CORS мы поместили обработку запроса предварительных параметров на стороне сервера. У нас есть специальный заголовок для отправки от клиентов, который позволяет ему быть предварительным запросом в соответствии с https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS.
При получении запроса опций с заголовком источника мы разрешаем источник с помощью «Access-Control-Allow-Origin» и делаем Access-Control-Allow-Credentials «true».
Мой вопрос: есть ли что-то еще, что мне нужно сделать, или могут ли быть случаи, когда браузер не отправляет запрос предварительных параметров?
Наилучшие пожелания,
Саурав




Источник: https://howtodoinjava.com/servlets/java-cors-filter-example/
public class CORSFilter implements Filter {
public CORSFilter() {
}
public void destroy() {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain chain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
System.out.println("CORSFilter HTTP Request: " + request.getMethod());
// Authorize (allow) all domains to consume the content
((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Origin", "*");
((HttpServletResponse) servletResponse).addHeader("Access-Control-Allow-Methods","GET, OPTIONS, HEAD, PUT, POST");
HttpServletResponse resp = (HttpServletResponse) servletResponse;
// For HTTP OPTIONS verb/method reply with ACCEPTED status code -- per CORS handshake
if (request.getMethod().equals("OPTIONS")) {
resp.setStatus(HttpServletResponse.SC_ACCEPTED);
return;
}
// pass the request along the filter chain
chain.doFilter(request, servletResponse);
}
public void init(FilterConfig fConfig) throws ServletException {
}
}