首页 > 其他分享 >使用CORS解决跨域问题

使用CORS解决跨域问题

时间:2024-10-16 15:21:41浏览次数:9  
标签:请求 source CORS 解决 new config 跨域

如果发起请求所在主机(也称为域)和处理请求所在主机的协议、域名和端口号这三者中有任何一项不同,那么发出的请求就叫跨域请求。
出于网络安全性方面的考虑,跨域请求会被限制,Spring Boot后端不能直接处理跨域请求,为了解决这一问题,可以在后端项目中引入CORS解决方案。
CORS(Cross Origin Resource Sharing,跨域资源共享)解决方案中,前端在发送请求前,需要预先用OPTIONS的方式发送一个询问请求,通过该请求得知,在后端支持跨域请求的前提下再发送真正的请求。
具体来说,在后端Spring Boot项目中,添加一个名为ResourcesConfig的配置类,在其中添加一个基于CORS的拦截器,这样前端发来的基于OPTIONS的询问请求会被该拦截器处理,一律返回“可接受跨域请求”,相关代码如下:

@Configuration
public class ResourcesConfig implements WebMvcConfigurer {
    /**
     * 跨域配置
     */
    @Bean
    public CorsFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.setAllowCredentials(true);
        // 设置访问源地址
        config.addAllowedOriginPattern("*");
        // 设置访问源请求头
        config.addAllowedHeader("*");
        // 设置访问源请求方法
        config.addAllowedMethod("*");
        // 有效期 1800秒
        config.setMaxAge(1800L);
        // 添加映射路径,拦截一切请求
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", config);
        // 返回新的CorsFilter
        return new CorsFilter(source);
    }
}

在该类中,通过第7行Configuration注解说明本类将起到配置类的作用。该类实现了WebMvcConfigurer接口,并在第8行中通过编写corsFilter方法设置了本项目支持跨域请求。具体来说,在该方法的第24行代码中,设置了本后端项目的所有接口方法,都支持跨域请求。

标签:请求,source,CORS,解决,new,config,跨域
From: https://blog.csdn.net/2301_80197997/article/details/142981796

相关文章

  • 敏捷转型中的敏捷实践:Leangoo领歌scrum工具私有部署解决方案
    近年来,敏捷开发逐渐成为企业项目管理中的热门话题。无论是互联网公司还是传统制造业,越来越多的企业通过敏捷方法,提升了项目的交付效率和团队的协作能力。在这个背景下,如何选择合适的敏捷管理工具,并确保其安全性和灵活性,成为了不少企业关注的焦点。 很多团队在讨论敏捷实践时,会......
  • 西数SN580/SN770安装Windows 11 24H2蓝屏死机 下面是解决办法
    如果你使用的是西部数据SN580或SN770固态硬盘,则在安装或升级到Windows1124H2版后可能出现蓝屏死机问题。这两款固态硬盘都没有DRAM缓存模块,缓存模块充当数据中转站,可以在写入数据时预先将数据写入速度更快的缓存模块再向硬盘里写入。虽然微软还未发布该问题的详......
  • 《纪元1800》遭遇dll丢失问题无法启动:msvcr71.dll丢失详解与定制化解决方案
    《纪元1800》是一款非常受欢迎的城市建设和经济策略游戏,但有时玩家可能会遇到msvcr71.dll丢失的问题,导致游戏无法启动。msvcr71.dll是MicrosoftVisualC++运行库的一部分,负责支持许多应用程序的运行。以下是对msvcr71.dll丢失问题的详细解释及定制化解决方案。问题原......
  • 解决conda环境包冲突问题
    当我们将一个包安装到我们指定的虚拟环境中时,我们可能会发现它们会被安装到同一个目录中,并且不同版本的这些包之间会存在冲突。此外,我们可能会获取到不属于我们创建的环境的包信息。首先,我们需要知道,如果USER_SITE存在,所有的包都会被安装在其中,这就是为什么会导致版本冲突的原因......
  • QT打包exe(含错误解决方法)
    打包工具windeployqt.exe运行报错QT5core库链接有问题把打包工具路径下的libstdc++-6.dll文件粘贴到目标路径下(可以看到两个文件的大小是有差别的,具体原因未知)参考https://blog.csdn.net/hanhui22/article/details/109595193......
  • 64页精品PPT | 汽车经销商数据应用解决方案
    汽车经销商正面临前所未有的盈利能力挑战。从18年起,传统燃油车汽车行业开始步入低速增长阶段,卖车已经挣不到钱,利润往往来自任务完成的厂家返利;新兴的直营模式的出现,冲击了传统授权经销的方式,疫情让这种情况“雪上加霜”。该资料共64页可编辑PPT格式,本文重点展现PPT整体......
  • KCD81RUG7T68 SSD:企业级存储解决方案的卓越选择
    在当今数据驱动的商业环境中,选择一款可靠且高效的企业级SSD至关重要。KCD81RUG7T68SSD凭借其出色的性能和高可靠性,成为众多企业用户的首选。1.卓越的读写性能KCD81RUG7T68SSD采用先进的NAND闪存技术,提供高达XXMB/s的顺序读写速度,能够满足高负载应用和数据密集型任务的需......
  • 解决网速慢的问题
    一、NAT条目数的问题shipnatstatistics查看条目数shipnattran*查看异常的连接数条目写acl策略,限制相应的端口tcp连接clearipnattran*二、网络设备cpu过高,及接口下是否有error和crc记数CPU问题:shprocessescpu|exclude0.00观察那个服务或进程1.http的开启......
  • 阿里面试:如何解决Redis热点Key问题? (按此作答,拿 60W年薪)
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 积木链无代码开发平台是怎么解决系统间的数据孤岛问题的?
    什么是数据孤岛?数据孤岛是指在企业或组织中,相互独立的信息系统或数据存储之间无法进行有效的数据共享和交互,从而形成一个个孤立的数据“岛屿”。企业数据孤岛的产生怎么形成的?首先,从技术层面来说,可能原因是不同系统采用不同的数据格式和存储方式,导致数据难以整合。例如,一......