SpringBoot处理跨域访问

 前端请求后端满足三个条件(同一域名、同一端口、同一协议)下,即可访问,有一个条件不满足就会产生跨域访问问题。

解决方案

1. 在拦截器preHandle中处理添加

response.setHeader("Access-Control-Allow-Origin","*")

2. Spring解决方案:

2.1 注解方式:一般在可以支持跨域访问的Controller层加上

@CrossOrigin(origins = “http://localhost:8888”)//参数默认为“*”支持处理任何域名端口的请求

2.2 全局处理:

@Configuration
public class CorsConfigurer extends WebMvcConfigurerAdapter{
   @Override
   public void addCorsMappings(CorsRegistry registry){
  //配置跨域访问路径,/**代表所有路径
  registry.addMapping("/**");
   }
}
/** 细粒度控制 **/
@Configuration
public class CorsConfigurer extends WebMvcConfigurerAdapter{
   @Override
   public void addCorsMappings(CorsRegistry registry){
    //配置跨域访问路径
    registry.addMapping("/api/**");
    //配置请求方
    .allowedOrigins("http://localhost:8888")
    //请求方法
    .allowedMethods("GET", "POST")
    //请求当中是否包含cookies信息
    .allowCredentials(false)
    //预请求缓存时间
    .maxAge(3600);
   }
}

你可能感兴趣的:(SpringBoot处理跨域访问)