Возврат приложения загрузки Spring Доступ к XMLHttpRequest по адресу myURL был заблокирован политикой CORS - PullRequest
0 голосов
/ 06 августа 2020
• 1000 Я добавил в бэкэнд как зависимость области видимости системы maven, я получаю ошибку cors. Все остальные URL-адреса бэкэнда работают нормально

вот как я включил зависимость jar для бэкэнда:

    <dependency>
        <groupId>com.ex</groupId>
        <artifactId>lib</artifactId>
        <version>1.0</version>
        <scope>system</scope>
        <systemPath>${project.basedir}/src/main/resources/Utils.jar</systemPath>
    </dependency>

обратите внимание, что я использую диспетчер Zuul между фронтом и бэкэндом и что я сделал эту конфигурацию в бэкэнде

@Component

publi c class CorsFilter extends OncePerRequestFilter {

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain) throws ServletException, IOException {
    response.setHeader("Access-Control-Allow-Origin", "*");
    response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
    response.setHeader("Access-Control-Max-Age", "3600"); 
    response.setHeader("Access-Control-Allow-Headers", "authorization, content-type, xsrf-token, Content-Range, Content-Disposition, Content-Description, GAuth");
    response.addHeader("Access-Control-Expose-Headers", "xsrf-token");
    if ("OPTIONS".equals(request.getMethod())) {
        response.setStatus(HttpServletResponse.SC_OK);
    } else {
        filterChain.doFilter(request, response);
    } 
}

}

любая помощь будет принята с благодарностью, спасибо

1 Ответ

0 голосов
/ 07 августа 2020

Во-первых, вам нужно добавить аннотацию @CrossOrigin в ваш контроллер. Вот правильная конфигурация из документации:

@Bean
public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurer() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {

            registry.addMapping("/**")
                    .allowedOrigins("*")
                    .allowedMethods("*")
                    .allowedHeaders("*");

        }
    };
}

Вы можете настроить его по-своему.

Во-вторых, если вы используете SpringSecurity, вам нужно добавить .cors() в вашу конфигурацию.

Пример:

@Override
    protected void configure(HttpSecurity http) throws Exception {
        http
                .cors().and()
                .csrf().disable()
                .authorizeRequests()
                .anyRequest().permitAll()
                .and().httpBasic();
    }
...