Неправильный запрос CORS для почтового звонка? - PullRequest
0 голосов
/ 14 ноября 2018
Request URL: ******
Request Method: OPTIONS
Status Code: 403 
Remote Address: ****
Referrer Policy: no-referrer-when-downgrade

Для браузера после вызова, показывающего его как ОПЦИИ.

Ниже приведен код сервера:

@Bean
public WebMvcConfigurer corsConfigurer() {
    return new WebMvcConfigurerAdapter() {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            System.out.println("onboard cors");

            registry.addMapping("/**").allowedMethods("GET", "PUT", "POST", "DELETE", "OPTIONS").allowedOrigins("*").allowedHeaders("*");
        }
    };
}

Приведенный выше код работает нормально, когда я напрямую звоню в соответствующую службу.

Но при получении «недопустимого запроса cors» возникает ошибка вызова службы через шлюз zuul api.

Есть предложения, плз?

Ответы [ 2 ]

0 голосов
/ 14 ноября 2018

У меня сработало следующее решение.

Добавьте приведенный ниже код в проект zuul:

@Bean
public FilterRegistrationBean corsFilter() {
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
    CorsConfiguration config = new CorsConfiguration();
    config.setAllowCredentials(true);
    config.addAllowedOrigin("*");
    config.addAllowedHeader("*");
    config.addAllowedMethod("*");
    source.registerCorsConfiguration("/**", config);
    FilterRegistrationBean bean = new FilterRegistrationBean(new org.springframework.web.filter.CorsFilter(source));
    bean.setOrder(0);
    return bean;
}

Добавление кода corsfilter во все микросервисы не требуется.

Ссылка: https://stackoverflow.com/a/46277194/4132466

0 голосов
/ 14 ноября 2018

Ваш браузер сначала проверяет, безопасен ли метод POST для отправки в конечную точку, и если да, то выполняет запрос POST.Вы должны предоставить разрешения методу OPTIONS и ответить на него Allow: GET, HEAD, POST, и все должно быть в порядке.Я столкнулся с этой проблемой при работе с Python, так что все дело в CORS и не зависит от платформы.

Подробнее об этом здесь

...