SpringBoot2.0 跨域处理

版权声明:LT https://blog.csdn.net/LitongZero/article/details/88258985

SpringBoot2.0 跨域处理

1.原因

在前后端项目分离时,最先遇到的问题也许就是跨域

其他原因,不再赘述。

2.环境

①.spring-boot:2.1.0.RELEASE

3.解决跨域的伪三种方式(本质一样)

一、Application.java直接配置Bean

@SpringBootApplication
public class Application {
	public static void main(String[] args) {
		SpringApplication.run(Application.class, args);
	}


	@Bean
	public CorsFilter corsFilter() {
		final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
		final CorsConfiguration config = new CorsConfiguration();
		// 允许cookies跨域
		config.setAllowCredentials(true);
		// 允许向该服务器提交请求的URI,*表示全部允许。。这里尽量限制来源域,比如http://xxxx:8080
		// ,以降低安全风险。。
		config.addAllowedOrigin("*");
		// 允许访问的头信息,*表示全部
		config.addAllowedHeader("*");
		// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了
		config.setMaxAge(18000L);
		// 允许提交请求的方法,*表示全部允许,也可以单独设置GET、PUT等
		config.addAllowedMethod("*");

		/*
		 * config.addAllowedMethod("HEAD"); config.addAllowedMethod("GET");//
		 * 允许Get的请求方法 config.addAllowedMethod("PUT");
		 * config.addAllowedMethod("POST"); config.addAllowedMethod("DELETE");
		 * config.addAllowedMethod("PATCH");
		 */
		source.registerCorsConfiguration("/**", config);
		return new CorsFilter(source);
	}
}

二、定义配置类

新建一个CorsConfig.java(名字随意)

/**
 * 说明:处理跨域请求
 *
 * @author lt
 * @version v1.0
 * @date 2018/1/21/
 */
@Configuration
@EnableWebMvc
public class CorsConfig implements WebMvcConfigurer {

    //跨域处理 另一种方式
    @Override
    public void addCorsMappings(CorsRegistry registry) {
        //设置允许跨域的路径
        registry.addMapping("/**")
                //设置允许跨域请求的域名
                .allowedOrigins("*")
                //是否允许证书 不再默认开启
                .allowCredentials(true)
                //设置允许的方法
                .allowedMethods("*")
                //跨域允许时间
                .maxAge(3600);
    }
}

三、添加@CrossOrigin注解

在需要跨域的Controller类或方法名上添加@CrossOrigin注解

其中@CrossOrigin中的2个参数:
origins : 允许访问的域列表。如(origins = "http://csdn.com")
maxAge:响应前缓存持续最大时间(秒)。如(maxAge = 600)

为什么叫伪呢?因为这不是全局解决方案。

猜你喜欢

转载自blog.csdn.net/LitongZero/article/details/88258985
今日推荐