SpringBoot配置跨域的机种方式 spring跨域的几种方式

SpringBoot配置跨域的机种方式 spring跨域的几种方式

  • 1、注解方式
  • 2、实现 WebMvcConfigurer 接口
  • 3、使用 FilterRegistrationBean 过滤器 (推荐)

1、注解方式

使用 @CrossOrigin注解标注在 Controller或者 Mapping

@RestController
@CrossOrigin
@RequestMapping("/ctro")
public class Controller{@CrossOrigin@GetMapping(value = "/test")public String test(){return "Nihao"}
}

2、实现 WebMvcConfigurer 接口

这种方式问题比较多,如果没有生效,需要考虑 是不是有其他组件模块影响了跨域,例如(Shiro、Sa-Token等过滤器会影响)

@Configuration
@EnableWebMvc
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("*") // 允许所有域名访问,可以根据需求进行配置.allowedMethods("GET", "POST", "PUT", "DELETE", "OPTIONS") // 允许的请求方法.allowedHeaders("*") // 允许的请求头.allowCredentials(true) // 是否允许发送Cookie.maxAge(3600); // 预检请求的有效期,单位秒}
}

3、使用 FilterRegistrationBean 过滤器 (推荐)

@Configuration
public class CorsConfig {@Beanpublic FilterRegistrationBean corsFilter() {UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();CorsConfiguration config = new CorsConfiguration();config.setAllowCredentials(true);// 允许所有域名访问,可以根据需求进行配置, 使用setAllowedOrigin会出现IllegalArgumentExceptionconfig.addAllowedOriginPattern("*");config.addAllowedHeader("*");config.addAllowedMethod("*");source.registerCorsConfiguration("/**", config);// 使用FilterRegistrationBean包装CorsFilterFilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));// 设置Filter的优先级,值越小优先级越高bean.setOrder(0);return bean;}}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/179874.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark_Spark高阶特性

wscg filter导致断链 Codegen 向量化 simdjson Orc Parquet 支持批量读取 spark本身对parquet支持比较好,因为parquet

“PredictingChildrenHeight“ app Tech Support(URL)

Using our app, we can predict a childs height through formulas. Because there are many factors that affect a childs height, it is for reference only. ​​​​​​​ If you have any questions, you can either leave a message or send the questions to our em…

msng病毒分析

这是一个非常古老的文件夹病毒,使用XP系统的文件夹图标,采用VB语言开发,使用了一种自定义的壳来保护,会打开网址http://www.OpenClose.ir,通过软盘、U盘和共享目录进行传播,会在U盘所有的目录下生成自身的副本&#xf…

mysql使用--备份与恢复

1.mysqldump 1.1.使用mysqldump备份数据 1.1.1.备份指定数据库中的指定表 如:mysqldump [其他选项] 数据库名 [表1名 表2名 …] 如:mysqldump -uroot -hlocalhost -p1234 database1 student_score > student_score.sql 上述采用-u和-p完成用户登录&am…

Linux常用命令----shutdown命令

文章目录 命令概述参数解释使用示例及解释 命令概述 shutdown 命令用于安全地关闭或重启 Linux 系统。它允许管理员指定一个时间点执行操作,并可发送警告信息给所有登录的用户。 参数解释 时间参数 ([时间]): now: 立即执行关闭或重启操作。m: 在 m 分钟后执行操作…

Android控件全解手册 - 任意View缩放平移工具-实现思路和讲解

Unity3D特效百例案例项目实战源码Android-Unity实战问题汇总游戏脚本-辅助自动化Android控件全解手册再战Android系列Scratch编程案例软考全系列Unity3D学习专栏蓝桥系列ChatGPT和AIGC 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分…

数字阅读用户规模持续增长 5.3亿人享受数字化阅读便利

近日,鲁迅长孙周令飞在接受采访时表示,自己“现在90%的时间刷视频,10%的时间看书”,引发网友热议。不少网友表示,鲁迅的孙子都花90%的时间刷视频,难怪现在没人看书了,其实这并不奇怪,也并不表明没人看书,而是读屏与读书并重的时代,纸质阅读与数字阅读共同构成了日常的阅读模式。…

大数据之Redis

NoSQL SQL数据库泛指关系型数据库NoSQL不拘泥于关系型数据的设计范式,放弃了通用的技术标准,为某一特定领域场景而设计 NoSQL的特点 不遵循SQL标准不支持ACID远超SQL的性能 NoSQL的适用场景 对数据高并发的读写海量数据的读写对数据高可扩展性的 N…

webpack具体实现--未完

1、前端模块打包工具webpack webpack 是 Webpack 的核心模块,webpack-cli 是 Webpack 的 CLI 程序,用来在命令行中调用 Webpack。webpack-cli 所提供的 CLI 程序就会出现在 node_modules/.bin 目录当中,我们可以通过 npx 快速找到 CLI 并运行…

web:NewsCenter

题目 打开页面显示如下 页面有个输入框,猜测是sql注入,即search为注入参数点,先尝试一下 返回空白显示错误 正常显示如下 是因为单引号与服务端代码中的’形成闭合,输入的字符串hello包裹,服务端代码后面多出来一个‘导…

Linux僵死进程及文件操作

1.僵死进程(僵尸进程): 1.僵死进程产生的原因或者条件: 什么是僵死进程? 当子进程先于父进程结束,父进程没有获取子进程的退出码,此时子进程变成僵死进程. 简而言之,就是子进程先结束,并且父进程没有获取它的退出码; 那么僵死进程产生的原因或者条件就是:子进…

哈希和unordered系列封装(C++)

哈希和unordered系列封装 一、哈希1. 概念2. 哈希函数,哈希碰撞哈希函数(常用的两个)哈希冲突(碰撞)小结 3. 解决哈希碰撞闭散列线性探测二次探测代码实现载荷因子(扩容) 开散列哈希桶代码实现扩…

dpkg、apt、rpm、yum、dnf使用

1. yum参数以及使用 yum 命令是在 Fedora 和 RedHat 以及 SUSE 中基于 rpm 的软件包管理器,它可以使系统管理人员交互和自动化地更新与管理 RPM 软件包,能够从指定的服务器自动下载 RPM 包并且安装,可以自动处理依赖性关系,并且一…

Spark_spark shell退出方式

问题描述 在使用Spark Shell进行交互式编程时,如何优雅地退出Spark Shell,即关闭Shell会话,并释放资源。 解决方案 Spark Shell是一个交互式的Spark环境,基于Scala编程语言,可以用于快速开发和调试Spark应用程序。当…

C语言:输入3个整数,按由小到大的顺序输出(指针)

分析: 定义三个整型变量 a、b、c,和三个指向整型变量的指针变量 i、j、k。然后使用 scanf 函数从标准输入(键盘)中读取输入的三个整数,并将它们存储到 a、b、c 中。注意,使用 &a、&b、&c 进行赋…

【GitLab】流水线入门

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,数据结构,Linux基础,ARM开发板,网络编程等领域UP🌍快上🚘,一起学习,让我们成为一个强大的攻城狮&#xff0…

深入理解字符串函数和字符函数(二)

目录 strstr 的使用和模拟实现​ 简单的使用: 复杂情况下的使用 模拟实现strstr函数 用暴力求解的方式: strtok的使用 strerror 函数的使用​ strstr 的使用和模拟实现​ 作用:返回字符串在另外一个字符串中第一次出现的位置,即查找子…

Git 本地服务器搭建 Windows

git 安装参考:Git的安装、配置、使用01【Git Bash Here命令行操作】-CSDN博客 gitLab 服务端安装及配置参考:Windows环境搭建 Gitlab 服务器_gitlab windows_测试工程师成长之路的博客-CSDN博客

奇数求和(C++)

系列文章目录 进阶的卡莎C++_睡觉觉觉得的博客-CSDN博客数1的个数_睡觉觉觉得的博客-CSDN博客双精度浮点数的输入输出_睡觉觉觉得的博客-CSDN博客足球联赛积分_睡觉觉觉得的博客-CSDN博客大减价(一级)_睡觉觉觉得的博客-CSDN博客小写字母的判断_睡觉觉觉得的博客-CSDN博客纸币(…

HMM预习中文版

马尔可夫模型 在之前的笔记中,我们讨论了贝叶斯网络,以及它们如何被用于紧凑地表示随机变量之间的关系。现在,我们将介绍一个与之紧密相关的结构,称为马尔可夫模型,对于本课程的目的,可以将其视为类似于链…