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);
   }
}
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容