跨域
什么是跨域请求(CORS)?
CORS 全称 Croos Origin Resource Sharing(跨域资源共享)’
简单的来说就是一个项目去访问另外一个不同地址的项目的资源就叫跨域请求
前提是这两个项目不在一个域内.
每一个页面需要返回一个名为Access-Control-Allow-Origin的http头来允许外域的站点访问,可以仅仅暴露有限的资源和有限的外域站点访问
SpringBoot实现跨域
单独配置
在控制器层 也就是Controller加一个@CrossOrgin
注解其实就可以了.
意思是允许该类下的所有资源可以通过跨域访问.
当然 也可以写在某一个单独的方法上 代表这个方法允许通过跨域来访问.
也可以通过在@CrossOrgin注解后面填写Oorgins属性来配置哪个域名可以通过跨域来访问本类或方法
全局配置
我们也可以通过配置类的方式进行跨域的全局配置
创建一个类 添加@Configuration
注解
配置类中加入如下代码
@Bean
public WebMvcConfigurer webMvcConfigurer(){
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")//允许访问的资源路径
.allowedOrigins("http://lgp6.cn")//允许跨域访问的域名
.allowedMethods("*")//允许方法(POST GET等 *为全部)
. allowedHeaders("*") //允许的请求头 *为任何请求头
.allowCredentials(true) //是否携带cookire信息
.exposedHeaders(HttpHeaders.SET_COOKIE).maxAge(3600L); //maxAge(3600)表明在3600秒内,不需要再发送预检验请求,可以缓存该结果
}
};
}
根据自己的需求进行改动即可完成配置.