文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-14 20:15

关注

这篇文章主要介绍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怎么解决前后端分离时的跨域问题”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯