介绍一、为什么会跨域?
二,什么是跨域?
三,处理跨域
1,在控制器的类上或方法上添加注解
这篇文章主要介绍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怎么解决前后端分离时的跨域问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!