跨域问题: 发起请求的ip或域名或端口和目标服务器不一致,发生了异步请求
第一种:(在控制器类上加上@CrossOrigin注解,但必须在每个控制类上都加)
第二种:
创建一个过滤器类,配置如下:
package cn.kgc.common.config; 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; @Configuration public class CorsConfig { private CorsConfiguration buildConfig() { CorsConfiguration corsConfiguration = new CorsConfiguration(); // 你需要跨域的地址 注意这里的 127.0.0.1 != localhost // * 表示对所有的地址都可以访问 //corsConfiguration.addAllowedOrigin("*"); //也可指定域名 corsConfiguration.addAllowedOrigin("http://localhost:9999"); corsConfiguration.addAllowedOrigin("http://127.0.0.1:9999"); corsConfiguration.addAllowedHeader("*"); // 放行所有的请求头信息 corsConfiguration.addAllowedMethod("*"); // 放行所有的请求方式 //加上了这一句,大致意思是可以携带 cookie //最终的结果是可以 在跨域请求的时候获取同一个 session corsConfiguration.setAllowCredentials(true); return corsConfiguration; } @Bean public CorsFilter corsFilter() { UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); //配置可以访问的地址 source.registerCorsConfiguration("/**", buildConfig()); return new CorsFilter(source); } }