今日代码大赏 | Spring Boot 跨域配置

当前端和后端部署在不同的域名下时,会出现跨域问题。Spring Boot 框架提供了一种简单的方式来处理 CORS,允许开发者定义全局的跨域配置。

在 Spring Boot 中,我们可以使用 CorsWebFilter 来全局配置 CORS。

下面是 Spring Boot 中配置 CORS 的示例代码:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;

import java.util.Arrays;

// 处理跨域的配置类
@Configuration
public class CorsConfig {

    @Bean
    public CorsWebFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration(); // 创建CORS配置
        config.addAllowedMethod("*"); // 允许所有HTTP方法
        config.setAllowCredentials(true); // 允许cookies
        // @todo 将下面的通配符替换为线上环境的真实域名
        config.setAllowedOriginPatterns(Arrays.asList("*")); // 允许所有域名
        config.addAllowedHeader("*"); // 允许所有头

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
        source.registerCorsConfiguration("/**", config); // 为所有路径注册CORS配置

        return new CorsWebFilter(source); // 创建CorsWebFilter
    }
}

CORS 配置的优点

  • • 安全性:允许开发者在放松同源策略的同时,仍然保持对哪些源可以访问资源的控制。

  • • 灵活性:可以为不同的路径设置不同的CORS策略。

今天的代码大赏就到这里。希望通过这篇文章,你能够对 Spring Boot 跨域配置有一个更深入的理解。

完整代码片段来源于代码小抄,欢迎点击进入小程序阅读!

  在线访问:https://www.codecopy.cn/post/t31soi

在代码小抄可以看到更多优质代码,也欢迎大家积极分享,可能会获得我们官方的小礼品 🎁~

往期推荐

今日代码大赏 | React 基础语法再回顾

今日代码大赏 | Vue 基础语法

今日代码大赏 | Java 远程调试 JVM

今日代码大赏 | Spring Boot 拦截器

今日代码大赏 | 优雅使用 Docker

相关推荐

  • 面试官说给不了期望薪资?Offer 和高薪我全都要
  • 好烦啊,我真的不想写增删改查了!
  • 查询提速 11 倍,资源节省 70%,Apache Doris 在网易日志和时序场景的落地实践
  • 苹果就新款iPad Pro争议性广告致歉;百度副总裁璩静已离职;小米宣布澎湃Hyper OS系统版本模式调整 | 极客头条
  • 火爆外网的「十亿行挑战」,国外大神用C++应战:从67s到0.77s,速度狂飙87倍!
  • “我对CTO撒了个谎,用3人开发的功能取代外包70人的成果,成功拯救了交付的Deadline!”
  • 朱啸虎×傅盛:2024年最火的俩老板又来抬杠了
  • Neuralink首个脑机接口患者:打游戏、搞研究两不误,重获自主能力
  • 今日arXiv最热NLP大模型论文:NAACL24实锤语言学对大模型“负优化”,抽象语义表示+思维链有损表现
  • AI 投资高昂,中小银行如何策略性“以小搏大”?
  • 小米 SU7 是心头好?特斯拉是白月光?技术人最喜爱的新能源汽车是什么?| 有礼调研
  • HarmonyOS 极客马拉松 2024——一场挑战极限,成就技术世界超级极客的旅程
  • 分层存储无法拯救 Kafka
  • 我们用大模型给 IDE 升了个级,这是我们总结的万字心得
  • 视频下载:《大模型助力ASR与TTS系统升级》
  • 电子书下载:《数据湖应用场景与MySQL数据库架构实践优化》
  • 腾讯 PCG 搜广推机器学习框架GPU 性能优化实践
  • 构建高度可扩展的云原生应用的5个技巧
  • OpenAI“大模型宪法”出炉,公开征集建议!网友:大模型不性感了!
  • 【深度学习】卷积神经网络CNN是靠什么线索学习到深度信息的?