[JAVA]跨域解决方法

  1. 解决
    1. 一、@CrossOrigin
    2. 二、拦截器(全局)
    3. 三、CorsFilter(全局)

前后端交互出现跨域错误

error

home:1 Access to XMLHttpRequest at 'http://127.0.0.1:8080/article/list?start=1&limit=5' from origin 'http://localhost:4200' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

解决

一、@CrossOrigin

该注解可使用在类或者方法上,针对性的解决部分接口的跨域问题。

二、拦截器(全局)

@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("POST", "GET", "PUT", "OPTIONS", "DELETE")
                .maxAge(3600)
                .allowCredentials(true);
    }
}

三、CorsFilter(全局)

@Configuration
public class CrossDomainConfig {
    @Bean
    public CorsFilter corsFilter() {
        //1.添加CORS配置信息
        CorsConfiguration config = new CorsConfiguration();
        //放行哪些原始域
        config.addAllowedOrigin("*");
        //是否发送Cookie信息
        config.setAllowCredentials(true);
        //放行哪些原始域(请求方式)
        config.addAllowedMethod("*");
        //放行哪些原始域(头部信息)
        config.addAllowedHeader("*");
        //暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)
        config.addExposedHeader("content-type");

        //2.添加映射路径
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);

        //3.返回新的CorsFilter.
        return new CorsFilter(configSource);
    }

}

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xiaoxin1218@qq.com

文章标题:[JAVA]跨域解决方法

文章字数:270

本文作者:周信

发布时间:2020-04-01, 16:43:05

最后更新:2020-04-01, 17:59:52

原始链接:http://zx21.xyz/2020/04/01/JAVA-跨域解决方法/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

可为我打赏鼓励~