1. package com.shiers.config;
  2. import org.springframework.context.annotation.Bean;
  3. import org.springframework.context.annotation.Configuration;
  4. import org.springframework.web.cors.CorsConfiguration;
  5. import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
  6. import org.springframework.web.filter.CorsFilter;
  7. /**
  8. * Demo class
  9. *
  10. * @author shierS
  11. * @date 2021/5/28
  12. */
  13. @Configuration
  14. public class CorsConfig {
  15. public CorsConfig(){}
  16. @Bean
  17. public CorsFilter corsFilter(){
  18. //1.添加cors配置信息
  19. CorsConfiguration config = new CorsConfiguration();
  20. config.addAllowedOrigin("http://localhost:8080");
  21. //设置是否发送cookie信息
  22. config.setAllowCredentials(true);
  23. //设置允许请求的方式
  24. config.addAllowedMethod("*");
  25. //设置允许的header
  26. config.addAllowedHeader("*");
  27. //2.为url添加映射路径
  28. UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();
  29. corsSource.registerCorsConfiguration("/**",config);
  30. //3.返回重新定义好的corsSource
  31. return new CorsFilter(corsSource);
  32. }
  33. }

什么是CORS?

CORS是一个W3C标准,全称是“跨域资源共享”(Cross-origin resource sharing),允许浏览器向跨源服务器,发出XMLHttpRequest请求,从而克服了AJAX只能同源使用的限制。
它通过服务器增加一个特殊的Header[Access-Control-Allow-Origin]来告诉客户端跨域的限制,如果浏览器支持CORS、并且判断Origin通过的话,就会允许XMLHttpRequest发起跨域请求。

CORS Header实例:

CORS HeaderAccess-Control-Allow-Origin: http://www.xxx.com
Access-Control-Max-Age:86400
Access-Control-Allow-Methods:GET, POST, OPTIONS, PUT, DELETE
Access-Control-Allow-Headers: content-type
Access-Control-Allow-Credentials: true

含义解释:

Access-Control-Allow-Origin 允许http://www.xxx.com域(自行设置,这里只做示例)发起跨域请求
Access-Control-Max-Age 设置在86400秒不需要再发送预校验请求
Access-Control-Allow-Methods 设置允许跨域请求的方法
Access-Control-Allow-Headers 允许跨域请求包含content-type
Access-Control-Allow-Credentials 设置允许Cookie
  1. <br /> <br /> <br /> <br />[

](https://blog.csdn.net/qq_39390545/article/details/106615075)