前后端分离跨域问题解决记录

什么是跨域

当一个请求的url路径,端口,协议三者之间的任意一个与当前页面不同即为跨域

覆盖默认的CorsFilter来解决该问题

@Configuration
public class GlobalCorsConfig {

    /**
     * 允许跨域调用的过滤器
     */
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        //允许所有域名进行跨域调用
        config.addAllowedOriginPattern("*");
        //允许跨越发送cookie
        config.setAllowCredentials(true);
        //放行全部原始头信息
        config.addAllowedHeader("*");
        //允许所有请求方法跨域调用
        config.addAllowedMethod("*");
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);
        return new CorsFilter(source);
    }
}

设置SpringSecurity允许OPTIONS请求访问

//允许跨域请求的OPTIONS请求
registry.antMatchers(HttpMethod.OPTIONS)
        .permitAll();

文章作者: zhang
版权声明: 本博客所有文章除特別声明外,均采用 CC BY-NC 4.0 许可协议。转载请注明来源 zhang !
评论
  目录