- 解决跨域问题的方法很多,比如nginx、jsonp、@CrossOrigin、配置CrossConfig,最简单的就是@CrossOrigin,直接在Controller层添加注解即可,今天介绍一下配置CrossConfig类的方式解决跨域。
- 步骤非常简单,需要创建WebMvcConfigurer的实现类CrossConfig,然后重写其中的addCorsMappings()。
package cn.moon.common.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* @ClassName CrossConfig
* @Description TODO 跨域解决方案
* @Author pegion
* @Date 2021/12/6 23:08
* @Version 1.0
*/
@Configuration
public class CrossConfig implements WebMvcConfigurer {
/**
*
* @param registry
*/
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("*")
.allowedMethods("GET","POST","PUT","DELETE","POTIONS","HEAD")
.allowCredentials(true)
.allowedHeaders("*")
.maxAge(3600);
}
}
解释:
addMapping("/**") 不管什么请求都放行
allowedOrigins("") 设置允许跨域请求的网址
allowedMethods() 设置允许的方法
allowCredentials(true) 是否允许证书
allowedHeaders("") 是否允许请求头
maxAge(3600) 跨域允许时间