Опция Spring BOOT Cors Filter ПАРАМЕТРЫ Ошибка «Ответ на предполетный запрос не проходит проверку контроля доступа» - PullRequest
0 голосов
/ 23 сентября 2019

Я пытался решить эту ошибку cors часами, и я испробовал все возможные решения, кроме одного (который добавляет метод опций для каждого ресурса / запроса). Вы можете найти все опробованные вещи ниже;

Cors-Configuration Class

@Configuration
public class CorsConfiguration
{
    @Bean
    public WebMvcConfigurer corsConfigurer()
    {
    return new WebMvcConfigurer()  {
        @Override
        public void addCorsMappings(CorsRegistry registry) {
            registry.addMapping("/**")
                    .allowedHeaders("*")
                    .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS")
                    .allowCredentials(true)
                    .allowedOrigins("*")
                    .exposedHeaders(AuthorizationController.AUTHENTICATION_KEY_NAME + "," +
                                    HandlerHelper.REASON_KEYNAME)
                    .maxAge(3600);
        }
     };
    }


}

Pre Handle

@Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler){

    response.setHeader("Access-Control-Allow-Credentials", "true");
    response.setHeader("Access-Control-Allow-Origin","*");
    response.setHeader("Access-Control-Allow-Methods" ,"GET, POST, PUT, DELETE, OPTIONS");
    response.setHeader("Access-Control-Allow-Headers",AuthorizationController.AUTHENTICATION_KEY_NAME +","+ REASON_KEYNAME);
    response.setHeader("Access-Control-Max-Age","3600"); }

application.properties

spring.mvc.dispatch-options-request=true

Добавление аннотации к классу и метода OPTIONS к любому запросу на ресурс

 @CrossOrigin(origins = "*", maxAge = 3600)
    @RequestMapping(value = "/**", method = RequestMethod.OPTIONS)
        public ResponseEntity handle() {
            return new ResponseEntity(HttpStatus.OK);
        }

Как я могу разрешить 'не простой запрос cors' в весенней загрузке?Или это react проблема?Мой фронтенд-разработчик не может отправить запрос от axios ..

1 Ответ

0 голосов
/ 23 сентября 2019

Добавление кода ниже решило проблему.

@EnableWebSecurity
public static class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        // ...
        http.cors().and().csrf().disable();
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...