SpringBoot跨域CORS设置:实现根据来源地址返回对应的Access-Control-Allow-Origin允许网址
Posted xiaoyanbot
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot跨域CORS设置:实现根据来源地址返回对应的Access-Control-Allow-Origin允许网址相关的知识,希望对你有一定的参考价值。
说明:Boot 2.4 要使用通配符,需要使用新增的方法 allowedOriginPatterns
用于Boot 2.4版本以上配置
在config目录下增加配置类
package com.example.demo24.config;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class GlobalCorsConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOriginPatterns("*") // SpringBoot2.4.0 [allowedOriginPatterns]代替[allowedOrigins]
.allowedMethods("*")
.allowCredentials(true);
}
}
用于Boot2.4版本以下配置
在config目录下增加配置类
package com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class GlobalCorsConfig implements WebMvcConfigurer
{
@Override
//重写父类提供的跨域请求处理的接口
public void addCorsMappings(CorsRegistry registry) {
//添加映射路径
registry.addMapping("/**")
//放行哪些原始域l
.allowedOrigins("*")
//是否发送Cookie信息
.allowCredentials(true);
}
}
另外方式:匿名方法方式(适用于Boot 2.4版本以下)
适用于 SpringBoot 2.4.0 以下版本; 之上版本需要重载方法。
在config目录下增加配置类
package com.example.demo.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class GlobalCorsConfig
{
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
//重写父类提供的跨域请求处理的接口
public void addCorsMappings(CorsRegistry registry) {
//添加映射路径
registry.addMapping("/**")
//放行哪些原始域
.allowedOrigins("*")
//是否发送Cookie信息
.allowCredentials(true)
//放行哪些原始域(请求方式)
.allowedMethods("GET","POST", "PUT", "DELETE")
//放行哪些原始域(头部信息)
.allowedHeaders("*");
//暴露哪些头部信息(跨域访问默认不能获取全部头部信息)
//.exposedHeaders("Header1", "Header2");
}
};
}
}
以上是关于SpringBoot跨域CORS设置:实现根据来源地址返回对应的Access-Control-Allow-Origin允许网址的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot CORS 跨域 @CrossOrigin