方法 一、最简单的方法,使用注解,声明在需要跨域访问的方法上面
方法二、声明配置类,重写WebMvcConfigurer方法
@Configuration
public class CorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
//是否发送cookie,默认不发送
.allowCredentials(true)
//允许的请求头
.allowedHeaders("*")
//请求方法
.allowedMethods(new String[]{"GET","PUT","POST","DELETE"})
//允许的请求路径
.allowedOriginPatterns("*")
//设置响应的头信息, 在其中可以设置其他的头信息,不进行配置时, 默认可以获取到Cache-Control、Content-Language、Content-Type、Expires、Last-Modified、Pragma字段
.exposedHeaders("*")
//配置预检请求的有效时间, 单位是秒,表示:在多长时间内,不需要发出第二次预检请求
.maxAge(3600);
}
}
报错When allowCredentials is true, allowedOrigins cannot contain the special value “*” since that cannot be set on the “Access-Control-Allow-Origin” response header. To allow credentials to a set of origins, list them explicitly or consider using “allowedOriginPatterns” instead.
如果使用.allowedOrigins(““),就会报错,改成.allowedOriginPatterns(””)即可。