当前位置:首页 > 科技  > 软件

跨域详解及Spring Boot 3中的跨域解决方案

来源: 责编: 时间:2024-05-20 17:54:32 195观看
导读跨域问题是Web开发中常见的一个问题,尤其在前后端分离的项目中更为常见。本文将为大家介绍跨域的概念、产生原因、影响以及Spring Boot 3中如何解决跨域问题。跨域的概念跨域访问问题指的是在客户端浏览器中,由于安全策

跨域问题是Web开发中常见的一个问题,尤其在前后端分离的项目中更为常见。本文将为大家介绍跨域的概念、产生原因、影响以及Spring Boot 3中如何解决跨域问题。9MI28资讯网——每日最新资讯28at.com

跨域的概念

跨域访问问题指的是在客户端浏览器中,由于安全策略的限制,不允许从一个源(域名、协议、端口)直接访问另一个源的资源。当浏览器发起一个跨域请求时,会被浏览器拦截,并阻止数据的传输。9MI28资讯网——每日最新资讯28at.com

这种限制是为了保护用户的隐私和安全,防止恶意网站利用用户的浏览器向其他网站发送请求并获取敏感信息。9MI28资讯网——每日最新资讯28at.com

以下是跨域的一些常见场景:9MI28资讯网——每日最新资讯28at.com

  • 不同域名:当页面的域名与请求的资源的域名不一致时,会触发跨域问题。例如,页面的域名为http://a.com,而请求的资源的域名为http://b.com。
  • 不同协议:当请求的资源的协议与页面的协议不一致时,也会引发跨域问题。例如,页面使用https://a.com访问资源http://a.com。
  • 不同端口:如果请求的资源的端口与页面的端口不同,同样会导致跨域问题。例如,页面使用http://a.com:8080请求资源http://a.com:8090。

跨域产生的原因

跨域问题的产生是由于浏览器的同源策略所导致的。同源策略是浏览器的一种安全机制,它防止一个源的文档或脚本从另一个源的文档或脚本获取敏感数据。同源策略要求两个页面具有相同的协议、主机和端口号,否则就会产生跨域问题。9MI28资讯网——每日最新资讯28at.com

跨域的影响

跨域请求会受到浏览器同源策略的限制,导致请求被拒绝,难以获取到需要的数据。这对前后端分离的项目来说是非常不利的,因为客户端和服务端是两个不同的服务,客户端通过浏览器向服务端发送请求获取数据,这就会涉及到跨域问题。如果无法解决跨域问题,就会导致项目无法正常运行。9MI28资讯网——每日最新资讯28at.com

报错如下:9MI28资讯网——每日最新资讯28at.com

图片_20240520071847.jpg9MI28资讯网——每日最新资讯28at.com

跨域解决方法

为了解决跨域问题,常用的方法包括:9MI28资讯网——每日最新资讯28at.com

  • CORS(Cross-Origin Resource Sharing):在服务端设置响应头,允许指定的跨域请求,浏览器在收到响应时会根据响应头判断是否允许访问。
  • JSONP(JSON with Padding):通过动态创建<script>标签来实现跨域请求,服务器返回的数据需要包裹在一个函数调用中。
  • 代理服务器:通过在自己的服务器上设置代理,将跨域请求转发到目标服务器上,再将结果返回给前端。

Spring Boot 3中的跨域解决方案

Spring Boot 3提供了多种方式解决跨域问题,其中比较常用的是配置CorsFilter过滤器。9MI28资讯网——每日最新资讯28at.com

Spring Boot 提供了 WebMvcConfigurer 接口来帮助我们定制化Web应用的配置,包括CORS(Cross-Origin Resource Sharing)设置。以下是一个简单的配置类示例:9MI28资讯网——每日最新资讯28at.com

ResourcesConfig.java9MI28资讯网——每日最新资讯28at.com

@Configurationpublic class ResourcesConfig implements WebMvcConfigurer {    @Bean    public CorsFilter corsFilter()    {        CorsConfiguration config = new CorsConfiguration();        config.setAllowCredentials(true);        // 设置访问源地址,(*)表示匹配所有。        config.addAllowedOriginPattern("*");        // 设置访问源请求头        config.addAllowedHeader("*");        // 设置访问源请求方法        config.addAllowedMethod("*");        // 有效期 1800秒,设置预检请求(OPTIONS请求)的缓存时间,1800秒意味着客户端可以缓存这个设置1800秒        config.setMaxAge(1800L);        // 添加映射路径,拦截一切请求        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();        source.registerCorsConfiguration("/**", config);        // 返回新的CorsFilter        return new CorsFilter(source);    }}

以上就是Spring Boot 3中解决跨域问题的方式。通过配置CorsFilter过滤器,我们可以很方便地解决跨域问题,保证项目的正常运行。9MI28资讯网——每日最新资讯28at.com

Spring Boot 中解决跨域的方案还有很多,这种方式是我们比较常用的一种。9MI28资讯网——每日最新资讯28at.com

总结

跨域问题是Web开发中一个常见的问题,但是通过Spring Boot 3提供的CorsFilter过滤器,我们可以很容易地解决这个问题。9MI28资讯网——每日最新资讯28at.com

本文链接:http://www.28at.com/showinfo-26-89404-0.html跨域详解及Spring Boot 3中的跨域解决方案

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。邮件:2376512515@qq.com

上一篇: 说到Python处理大数据集,别说你会用Pandas

下一篇: 15 个你不知道的 CSS 属性

标签:
  • 热门焦点
  • 一加Ace2 Pro官宣:普及16G内存 引领24G

    一加官方今天继续为本月发布的新机一加Ace2 Pro带来预热,公布了内存方面的信息。“淘汰 8GB ,12GB 起步,16GB 普及,24GB 引领,还有呢?#一加Ace2Pro#,2023 年 8 月,敬请期待。”同时
  • 影音体验是真的强 简单聊聊iQOO Pad

    大公司的好处就是产品线丰富,非常细分化的东西也能给你做出来,例如早先我们看到了新的vivo Pad2,之后我们又在iQOO Neo8 Pro的发布会上看到了iQOO的首款平板产品iQOO Pad。虽
  • CSS单标签实现转转logo

    转转品牌升级后更新了全新的Logo,今天我们用纯CSS来实现转转的新Logo,为了有一定的挑战性,这里我们只使用一个标签实现,将最大化的使用CSS能力完成Logo的绘制与动画效果。新logo
  • 学习JavaScript的10个理由...

    作者 | Simplilearn编译 | 王瑞平当你决心学习一门语言的时候,很难选择到底应该学习哪一门,常用的语言有Python、Java、JavaScript、C/CPP、PHP、Swift、C#、Ruby、Objective-
  • 之家push系统迭代之路

    前言在这个信息爆炸的互联网时代,能够及时准确获取信息是当今社会要解决的关键问题之一。随着之家用户体量和内容规模的不断增大,传统的靠"主动拉"获取信息的方式已不能满足用
  • 华为发布HarmonyOS 4:更好玩、更流畅、更安全

    在8月4日的华为开发者大会2023(HDC.Together)大会上,HarmonyOS 4正式发布。自2019年发布以来,HarmonyOS一直以用户为中心,经历四年多的发展HarmonyOS已
  • 三星推出Galaxy Tab S9系列平板电脑以及Galaxy Watch6系列智能手表

    2023年7月26日,三星电子正式发布了Galaxy Z Flip5与Galaxy Z Fold5。除此之外,Galaxy Tab S9系列平板电脑以及三星Galaxy Watch6系列智能手表也同期
  • 苹果MacBook Pro 2021测试:仍不支持平滑滚动

    据10月30日9to5 Mac 消息报道,苹果新的 14 英寸和 16 英寸 MacBook Pro 2021 上市后获得了不错的评价,亮点包括行业领先的性能,令人印象深刻的电池续航,精美丰
  • 亲历马斯克血洗Twitter,硅谷的苦日子在后头

    文/刘哲铭  编辑/李薇  马斯克再次挥下裁员大刀。  美国时间11月14日,Twitter约4400名外包员工遭解雇,此次被解雇的员工的主要工作为内容审核等。此前,T
Top