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

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

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

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

跨域的概念

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

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

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

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

跨域产生的原因

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

跨域的影响

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

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

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

跨域解决方法

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

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

Spring Boot 3中的跨域解决方案

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

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

ResourcesConfig.javaKGb28资讯网——每日最新资讯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过滤器,我们可以很方便地解决跨域问题,保证项目的正常运行。KGb28资讯网——每日最新资讯28at.com

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

总结

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

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

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

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

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

标签:
  • 热门焦点
  • 影音体验是真的强 简单聊聊iQOO Pad

    大公司的好处就是产品线丰富,非常细分化的东西也能给你做出来,例如早先我们看到了新的vivo Pad2,之后我们又在iQOO Neo8 Pro的发布会上看到了iQOO的首款平板产品iQOO Pad。虽
  • 容量越大越不坏?24万块硬盘故障率报告公布 这些产品零故障

    8月5日消息,云存储服务商Backblaze发布了最新的硬盘故障率报告,年故障率有所上升。Backblaze发布的硬盘季度统计数据,其中包括故障率等重要方面。这些结
  • 得物效率前端微应用推进过程与思考

    一、背景效率工程随着业务的发展,组织规模的扩大,越来越多的企业开始意识到协作效率对于企业团队的重要性,甚至是决定其在某个行业竞争中突围的关键,是企业长久生存的根本。得物
  • 虚拟键盘 API 的妙用

    你是否在遇到过这样的问题:移动设备上有一个固定元素,当激活虚拟键盘时,该元素被隐藏在了键盘下方?多年来,这一直是 Web 上的默认行为,在本文中,我们将探讨这个问题、为什么会发生
  • 为什么你不应该使用Div作为可点击元素

    按钮是为任何网络应用程序提供交互性的最常见方式。但我们经常倾向于使用其他HTML元素,如 div span 等作为 clickable 元素。但通过这样做,我们错过了许多内置浏览器的功能。
  • 本地生活这块肥肉,拼多多也想吃一口

    出品/壹览商业 作者/李彦编辑/木鱼拼多多也看上本地生活这块蛋糕了。近期,拼多多在App首页&ldquo;充值中心&rdquo;入口上线了本机生活界面。壹览商业发现,该界面目前主要
  • 机构称Q2国内智能手机销量同比下滑4% vivo份额重回第1

    7月29日消息,根据市场调查机构Counterpoint Research公布的最新报告,2023年第2季度中国智能手机销量同比下降4%,创新自2014年以来第2季度销量新低。报
  • 质感不错!OPPO K11渲染图曝光:旗舰IMX890传感器首次下放

    一直以来,OPPO K系列机型都保持着较为均衡的产品体验,历来都是2K价位的明星机型,去年推出的OPPO K10和OPPO K10 Pro两款机型凭借各自的出色配置,堪称有
  • 朋友圈可以修改可见范围了 苹果用户可率先体验

    近日,iOS用户迎来微信8.0.27正式版更新,除了可更换二维码背景外,还新增了多项实用功能。在新版微信中,朋友圈终于可以修改可见范围,简单来说就是已发布的朋友圈
Top