最新Spring Boot 跨域配置,亲测好用

背景:

网上有很多跨域配置,但都存在各种各样问题;经过改良和测试后,最终形成一个稳定配置版本,我的Spring Boot版本是2.5.1

问题:

前后端分离后,进行联调,发现浏览器出报跨域问题

解决方案:

在config配置文件中添加下面代码类。这里很重要的一点是,在有其他拦截器的时候,通过bean.setOrder(0);设置加载顺序,我是通过这个方式解决问题的

import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
@Configuration
public class GlobalCorsConfig {

    @Bean
    public FilterRegistrationBean corsFilter() {
        CorsConfiguration config = new CorsConfiguration();
        config.addAllowedOriginPattern("*");
        //是否允许发送Cookie信息
        config.setAllowCredentials(Boolean.TRUE);
        //开放哪些Http方法,允许跨域访问
        config.addAllowedMethod("GET");
        config.addAllowedMethod("PUT");
        config.addAllowedMethod("POST");
        config.addAllowedMethod("DELETE");
        config.addAllowedMethod("OPTIONS");
        //允许HTTP请求中的携带哪些Header信息
        config.addAllowedHeader("*");
        //暴露哪些头部信息(因为跨域访问默认不能获取全部头部信息)
        //config.addExposedHeader("*");
        //添加映射路径,"/**"表示对所有的路径实行全局跨域访问权限的设置
        UrlBasedCorsConfigurationSource configSource = new UrlBasedCorsConfigurationSource();
        configSource.registerCorsConfiguration("/**", config);

        FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(configSource));      //设置为第一
        bean.setOrder(0);
        return bean;
    }
}

Original: https://www.cnblogs.com/zdd-java/p/16309170.html
Author: 达兔哥
Title: 最新Spring Boot 跨域配置,亲测好用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/576092/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • python-去除txt文件空格、特殊字符

    #!/usr/bin/python -*- coding: UTF-8 -*- """ @author: Roc-xb ""&qu…

    数据库 2023年6月14日
    090
  • 第八章:变量、常量和基础类型

    本篇翻译自《Practical Go Lessons》 Chapter 8: Variables, constants and basic types 1 你将在本章中学到什么? …

    数据库 2023年6月6日
    0131
  • 根据温度、气压计算海拔高度

    基本概念 标准大气压:表示气压的单位,习惯上常用水银柱高度。例如,一个标准大气压等于760毫米高的水银柱的重量,它相当于一平方厘米面积上承受1.0336公斤重的大气压力。由于各国所…

    数据库 2023年6月14日
    0138
  • Linux 系统安装RocketMQ

    准备工作 1.去官网下载一个安装包 1.解压 unzip rocketmq-all-4.9.0-bin-release.zip -d /download/compress/ 2.进…

    数据库 2023年6月6日
    089
  • 管理控制台权限控制

    本文讨论一种常见的访问控制方法: [En] This article discusses a common way of access control: 数据授权: 角色 + 接口…

    数据库 2023年5月24日
    076
  • 面试记录

    JVM线程属于用户态还是内核态 当进程运行在ring3级别时为用户态,ring0级别时为内核态 有些操作需要有内核权限才能进行,那么有三种由用户态切换到内核态的情况: 系统调用:操…

    数据库 2023年6月16日
    0105
  • Javascript基础

    作者导言: 引用偶像刘德华的一句话 “学到的就要教人,赚到的就要给人”! 以下是关联的web前端基础知识文章,通过这些文章,您既可以系统地学习和了解这些知识…

    数据库 2023年6月14日
    0107
  • 695.岛屿的最大面积

    695.岛屿的最大面积 给你一个大小为 m x n 的二进制矩阵 grid 。 岛屿 是由一些相邻的 1 (代表土地) 构成的组合,这里的「相邻」要求两个 1 必须在 水平或者竖直…

    数据库 2023年6月16日
    081
  • MySQL函数学习(一)—–字符串函数

    注:笔记旨在记录 一、MySQL 字符串函数 \ 函 数 名 称 作 用 完 成 1 LENGTH 计算字符串长度 勾 2 CONCAT 字符串拼接,返回结果为连接参数产生的字符串…

    数据库 2023年6月16日
    078
  • CSS进阶内容—浮动和定位详解

    CSS进阶内容—浮动和定位详解 我们在学习了CSS的基本知识和盒子之后,就该了解一下网页的整体构成了 当然如果没有学习之前的知识,可以到我的主页中查看之前的文章: CSS的三种布局…

    数据库 2023年6月14日
    079
  • Vim使用技巧(持续更新)

    好记性不如烂笔头,在这里记录一些Vim使用技巧 vim配置 "拷贝同步&#…

    数据库 2023年6月14日
    086
  • 分布式全局唯一ID

    方案一、UUID UUID的方式能生成一串唯一随机32位长度数据,它是无序的一串数据,按照开放软件基金会(OSF)制定的标准计算,UUID的生成用到了以太网卡地址、纳秒级时间、芯片…

    数据库 2023年6月9日
    096
  • 详解在Linux中安装配置MySQL

    最近在整理自己私人服务器上的各种阿猫阿狗,正好就顺手详细记录一下清理之后重装的步骤,今天先写点数据库的内容,关于在 Linux中安装配置 MySQL 安装环境 CentOS7 + …

    数据库 2023年6月11日
    0127
  • mysql常用操作汇总

    工作中经常用会遇到这种情况,可以访问mysql所在的服务器,但是服务器端口不对外暴露(通常因为安全原因)。这时,操作数据库只能通过命令行和 mysql client窗口来实现。我对…

    数据库 2023年5月24日
    081
  • Centos MySQL 安装手册(超简洁)

    EL8 系统会遇到 yum报404: Errors during downloading metadata for repository ‘appstream’:原因是2022年1…

    数据库 2023年6月9日
    0111
  • 记录下在阿里云linux上安装与配置Mysql

    环境:阿里云ECS服务器,系统为centos7.2 用户:root 参考博客: https://blog.csdn.net/kunzai6/article/details/8193…

    数据库 2023年6月16日
    0118
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球