美文网首页
springboot跨域 addCorsMappings 失效问

springboot跨域 addCorsMappings 失效问

作者: 炒面Z | 来源:发表于2020-05-26 11:51 被阅读0次

    失效原因:

    请求会先进入拦截器中,而不是进入Mapping映射中,所以返回的头信息中并没有配置的跨域信息。浏览器就会报跨域异常。

    解决方案:

        @Bean
        public FilterRegistrationBean corsFilter() {
            //1.添加CORS配置信息
            CorsConfiguration config = new CorsConfiguration();
            //1) 允许的域,不要写*,否则cookie就无法使用了
            config.addAllowedOrigin("*");
            //2) 是否发送Cookie信息
            config.setAllowCredentials(true);
            //3) 允许的请求方式
            config.addAllowedMethod("OPTIONS");
            config.addAllowedMethod("HEAD");
            config.addAllowedMethod("GET");
            config.addAllowedMethod("PUT");
            config.addAllowedMethod("POST");
            config.addAllowedMethod("DELETE");
            config.addAllowedMethod("PATCH");
            config.setMaxAge(3600L);
            // 4)允许的头信息
            config.addAllowedHeader("*");
    
            //2.添加映射路径,我们拦截一切请求
            UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
            configSource.registerCorsConfiguration("/**", config);
    
            FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(configSource));
            bean.setOrder(0);//利用FilterRegistrationBean,将拦截器注册靠前,避免被其它拦截器首先执行
            return bean;
        }
    

    相关文章

      网友评论

          本文标题:springboot跨域 addCorsMappings 失效问

          本文链接:https://www.haomeiwen.com/subject/yqmmahtx.html