跨域是指不同域名之间相互访问。跨域,指的是浏览器不能执行其他网站的脚本。它是浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制。也就是如果在A网站中,我们希望使用Ajax来获得B网站中的特定内容,如果A网站与B网站不在同一个域中,那么就出现了跨域访问问题。

  什么是同一个域?同一协议,同一ip,同一端口,三同中有一不同就产生了跨域。也就是对于前后端分离来说,一定会有跨域问题,因为不是同一个服务,要不不同ip,要不不同端口。

  如何在spring boot中解决这个问题,只需添加下面配置即可:

 1 import org.springframework.context.annotation.Bean;
 2 import org.springframework.context.annotation.Configuration;
 3 import org.springframework.web.cors.CorsConfiguration;
 4 import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
 5 import org.springframework.web.filter.CorsFilter;
 6
 7 /**
 8  * 跨域配置
 9  */
10 @Configuration
11 public class CorsConfig {
12   // 设置允许跨域的源
13   private static String[] originsVal = new String[]{
14       "127.0.0.1:8080",
15       "localhost:8080",
16       "google.com",
17       "mail.google.com"
18   };
19
20   /**
21    * 跨域过滤器
22    *
23    * @return
24    */
25   @Bean
26   public CorsFilter corsFilter() {
27     UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
28     CorsConfiguration corsConfiguration = new CorsConfiguration();
29     this.addAllowedOrigins(corsConfiguration);
30     corsConfiguration.addAllowedHeader("*");  //添加允许访问的头
31     corsConfiguration.addAllowedMethod("*");  //添加允许访问的方法
32     corsConfiguration.addAllowedOrigin("*");  //添加允许访问的源,这里的*已经包含了originsVal数组里的源信息
33     source.registerCorsConfiguration("/**", corsConfiguration);
34     return new CorsFilter(source);
35   }
36
37   private void addAllowedOrigins(CorsConfiguration corsConfiguration) {
38     for (String origin : originsVal) {
39       corsConfiguration.addAllowedOrigin("http://" + origin);
40       corsConfiguration.addAllowedOrigin("https://" + origin);
41     }
42   }
43 }

转载于:https://www.cnblogs.com/Qsunshine/p/10449689.html

spring boot跨域问题相关推荐

  1. 本地Vue前端请求本地Spring Boot跨域问题(CROS错误)

    一.Vue前端 请求的url为 : GET /WebServer/home/get-user-info?id=1 二.Spring Boot后端 是一个Get请求的RestFul接口地址,且后端应用的 ...

  2. 实战系列-Spring Boot跨域解决方案

    导语   在实际工作开发中经常会遇到跨域请求,这个时候就需要前后端来共同协调来解决问题,那么在Spring Boot中怎么解决跨域请求问题呢?下面就来看看 什么是跨域   为了保证浏览器的安全,不同源 ...

  3. webmvcconfigurer配置跨域_为什么加了 Spring Security 会导致 Spring Boot 跨域失效呢?...

    点击上方 IT牧场 ,选择 置顶或者星标 技术干货每日送达 作者:欧阳我去 链接:https://segmentfault.com/a/1190000019485883 作为一个后端开发,我们经常遇到 ...

  4. spring boot 跨域请求_SpringBoot 系列教程 web 篇之自定义请求匹配条件 RequestCondition...

    191222-SpringBoot 系列教程 web 篇之自定义请求匹配条件 RequestCondition 在 spring mvc 中,我们知道用户发起的请求可以通过 url 匹配到我们通过@R ...

  5. Spring Boot跨域解决方案

    一.什么是跨域 为保证浏览器的安全,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源,这称之为同源策略,如果一个请求地址里的协议.域名.端口号都相同,就属于同源.依据浏览器同源策略,非同源脚 ...

  6. kuayu react_React+Spring实现跨域问题的完美解决方法

    最近小编在学习react,在学习过程中遇到React+Spring实现跨域问题,下面小编记录了整个问题过程,给大家做个参考. react 跨域访问后台,默认是有跨域问题,并且火弧和谷歌浏览器,对跨域问 ...

  7. react+spring 记录跨域问题的解决方法

    react+spring 记录跨域问题的解决方法 参考文章: (1)react+spring 记录跨域问题的解决方法 (2)https://www.cnblogs.com/cq-jiang/p/954 ...

  8. Spring Security跨域问题解决

    前文介绍了:Spring 处理跨域问题的三种方案 现在来看看 Spring Security 的跨域问题解决方案,共有三种方案.(摘自<深入浅出Spring Security>) 在实际项 ...

  9. 11.Spring security跨域问题

    文章目录 *跨域问题* *11.1什么是CORS* *11.2Spring处理方案* *11.2.1`@CrossOrigin`* *11.2.2`addCorsMappings`* *11.2.3` ...

最新文章

  1. 推荐一款 Nginx 可视化配置神器
  2. Kafka如何在千万级别时优化JVM GC问题?
  3. python高阶函数的使用
  4. go mysql 查询数据_MySQL常用语句之查询数据-Go语言中文社区
  5. matlab简单分析信号调制解调
  6. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_13_使用字节流读取中文的问题...
  7. visio 2010 激活方法
  8. SubSonic使用技巧
  9. 数学建模(一)—— 人口增长模型的确定
  10. 计算机分区无法删除,电脑硬盘分区无法修改的解决方法分析
  11. 省钱又省时间的买书方法
  12. html svg 线条动画,HTML5 SVG简单的动态绘制轮廓线条动画插件
  13. 32位计算机的内存限额,32位系统支持多大内存 如何完全使用32位4G内存
  14. Android Alarm闹钟
  15. 支付宝免费领取7天优酷黄金会员 1.88元购买1个月优酷黄金会员
  16. 我在哪?要到哪里去?怎么去?
  17. 车载服务器作用,穿针引线谈铁路机车车载系统服务器
  18. String.prototype.matchAll 正则一些常用方法
  19. sql server存储过程练习
  20. 取之盈:html网页音乐代码大全

热门文章

  1. cj搜索算法-魔版(打表术失败总结)
  2. .Net平台Winform两个ComboBox控件绑定同一个数据源
  3. [导入]24小时第六季 剧情
  4. 给出一种符号表的组织方式和结构设计,要考虑数组类型和函数(不得与课件上的雷同)
  5. winform_界面美化设计_显示/隐藏侧边栏
  6. linux 重新分区挂载,Linux:挂载磁盘分区,linux已挂载磁盘重新分区
  7. python列表输入不加逗号_用python打印不带括号或逗号的列表
  8. 【2020/6/24整理版】利用csi tool获取csi数据并进行数据解析----适合初学的小白
  9. python开源报表系统_流程设计器、表单设计器和简单报表管理开源OA系统smart-web...
  10. 835 由于安全层无法对远程计算机进行身份验证_干货 | 看黑客都是这样远程桌面安全设置...