iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >springboot怎么解决前后端分离时的跨域问题
  • 337
分享到

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

2023-06-14 20:06:49 337人浏览 薄情痞子
摘要

这篇文章主要介绍SpringBoot怎么解决前后端分离时的跨域问题,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!springboot是什么springboot一种全新的编程规范,其设计目的是用来简化新Spring应用

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

springboot是什么

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

一、为什么会跨域?

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

二、什么是跨域?

当一个请求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/主域名不同(52fansite/baidu)
https://www.52fansite.com/https://layui.52fansite.com/子域名不同(www/layui)
https://www.52fansite.com:8080/https://www.52fansite.com:8081/同源(协议、域名、端口号相同)

三、处理跨域

1、在controller的类上或方法上添加注解

1类上加注解

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

2方法上加注解

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

2、在启动类配置全局cors(springboot2.0已经过时)

@SpringBootApplicationpublic 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) {    registry.addMapping("/*").allowedOrigins("*");   }  }; }}

替换为

@SpringBootApplicationpublic 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) {    registry.addMapping("/*").allowedOrigins("*");   }  }; }}

3、注册corsFilter

@Configurationpublic class CorsConfig {        @Bean    public CorsFilter corsFilter() {        final UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();        final CorsConfiguration config = new CorsConfiguration();        config.setAllowCredentials(true);        config.addAllowedOrigin("*");        config.addAllowedHeader("*");        config.addAllowedMethod("*");        source.registerCorsConfiguration("/**", config);        return new CorsFilter(source);    }}

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

--结束END--

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

本文链接: https://www.lsjlt.com/news/274596.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作