SpringMVC 跨域配置
boot 跨域配置
这个建议看具体的官方文档,里面写得有,不同版本建议的配置不一致,这里就一个过滤器
https://docs.spring.io/spring-boot/docs/2.3.3.RELEASE/reference/htmlsingle/#boot-features-cors 关于制定的版本如何找到对应的在线文档,请看前面的笔记 Spring 开发中的实战
package cn.mrcode.foodiedev.sso;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* 跨域配置
*
* @author mrcode
* @date 2021/2/13 16:27
*/
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
// 设置运行跨域的地址,也可以使用 * 代替允许所有地址
config.addAllowedOrigin("http://www.mtv.com");
config.addAllowedOrigin("http://www.mtv.com:8080");
config.addAllowedOrigin("http://www.music.com");
config.addAllowedOrigin("http://www.music.com:8080");
config.addAllowedOrigin("*");
// 是否运行携带 cookie 相关信息
// 在前端也有的框架可以配置这一样,前端是否允许跨域的时候携带:axios.defaults.withCredentials = true;
config.setAllowCredentials(true);
// 允许访问所有的 http 请求方式,如 get、post
config.addAllowedMethod("*");
config.addAllowedHeader("*");
// 为 url 添加映射路径
// 允许所有路径使用该配置
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}