springboot跨域问题

项目场景:

在使用Springboot 进行开发时往往会遇到跨域问题 今天先介绍一下我在本地调试的时候遇到的跨域问题

问题描述:

响应头中有一个Access-Control-Allow-Origin字段,用来记录可以访问该资源的域。当浏览器收到这样的响应头信息之后,提取出Access-Control-Allow-Origin字段中的值,发现该值包含当前页面的域,就知道这个域是被允许的,因此就不再对前端的跨域请求进行限制,这就是GET请求的整个跨域过程

解决方案:

如果没用spring-security那么有两种解决方案

  1. 第一种是用注解的方式
@CrossOrigin(value="/**", maxAge=3600,allowedHeaders="*")
  1. 在config中进行配置
@Configuration
public class MyWebMvcConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry){
        registry.addMapping("/**")
                .allowedHeaders("*")
                .allowedMethods("*")
                .maxAge(3800)
                .allowedOrigins("*");
    }

}

如果用了spring security 并且你已经用了以上两种方法却怎么也搞不对的时候 恭喜你 你踩到了一个巨坑
需要在配置类加上

.and()
.cors()

就OK了

你可能感兴趣的:(Java,java,spring)