springboot怎么解决前后端分离时的跨域问题

  介绍

这篇文章主要介绍springboot怎么解决前后端分离时的跨域问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

springboot是什么

springboot一种全新的编程规范,其设计目的是用来简化新弹簧应用的初始搭建以及开发过程,springboot也是一个服务于框架的框架,服务范围是简化配置文件。

一、为什么会跨域?

出于浏览器的同源策略限制。同源策略(Sameoriginpolicy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说网络是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。同源策略会阻止一个域的javascript脚本和另外一个域的内容进行交互。所谓同源(即指在同一个域)就是两个页面具有相同的协议(协议),主机(主机)和端口号(港口)

二,什么是跨域?

当一个请求url的协议,域名,端口三者之间任意一个与当前页面url不同即为跨域

当前页面url被请求页面url是否跨域原因https://www.52fansite.com/https//www.52fansite.com/index.html否同源(协议,域名,端口号相同)https://www.52fansite.com/http//www.52fansite.com/index.html是协议不同(https/http) https://www.52fansite.com/https://www.baidu.com/是主域名不同(52/栋俣?https://www.52fansite.com/https//layui.52fansite.com/是子域名不同(www/layui) https://www.52fansite.com: 8080/https://www.52fansite.com: 8081/是同源(协议,域名,端口号相同)

三,处理跨域

1,在控制器的类上或方法上添加注解

1.1类上加注解

@RestController   @CrossOrigin (=origins “*“)   public  class  CorsController  {      ,,,@GetMapping (“/cors")   ,,,public  String  testCors (), {   ,,,,,,,return “success";   ,,,}   }

1.2方法上加注解

@RestController   public  class  CorsController  {      ,,,@CrossOrigin (=origins “*“)   ,,,@GetMapping (“/cors")   ,,,public  String  testCors (), {   ,,,,,,,return “success";   ,,,}   }

2,在启动类配置全局歌珥(springboot2.0已经过时)

@SpringBootApplication   public  class  Application  {      ,public  static  void  main (String [], args), {   SpringApplication.run才能(Application.class, args);   ,}      ,@ bean   ,public  WebMvcConfigurer  corsConfigurer (), {   return 才能;new  WebMvcConfigurerAdapter (), {   @Override。才能   ,,public  void  addCorsMappings (CorsRegistry 注册),{   ,,,registry.addMapping .allowedOrigins (“/*”) (“*”);   ,,}   ,,};   ,}   }

替换为

@SpringBootApplication   public  class  Application  {      ,public  static  void  main (String [], args), {   SpringApplication.run才能(Application.class, args);   ,}      ,@ bean   ,public  WebMvcConfigurer  corsConfigurer (), {   return 才能;new  WebMvcConfigurer (), {   @Override。才能   ,,public  void  addCorsMappings (CorsRegistry 注册),{   ,,,registry.addMapping .allowedOrigins (“/*”) (“*”);   ,,}   ,,};   ,}   }

3注册corsFilter

@ configuration   public  class  CorsConfig  {   ,,,,   ,,@ bean   ,,,public  CorsFilter  corsFilter (), {   ,,,,,,,final  UrlBasedCorsConfigurationSource  source =, new  UrlBasedCorsConfigurationSource ();   ,,,,,,,final  CorsConfiguration  config =, new  CorsConfiguration ();   ,,,,,,,config.setAllowCredentials(真正的);   ,,,,,,,config.addAllowedOrigin (“*”);   ,,,,,,,config.addAllowedHeader (“*”);   ,,,,,,,config.addAllowedMethod (“*”);   ,,,,,,,source.registerCorsConfiguration(“/* *,,,配置);   ,,,,,,,return  new  CorsFilter(源);   ,,,}   }

以上是“springboot怎么解决前后端分离时的跨域问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

springboot怎么解决前后端分离时的跨域问题