61、SpringBoot -----跨域资源的设置----局部设置和全局设置

★ 跨域资源共享的意义

▲ 在前后端分离的开发架构中,前端应用和后端应用往往是彻底隔离的,二者不在同一个应用服务器内、甚至不再同一台物理节点上。
因此前端应用和后端应用就不在同一个域里。▲ 在这种架构下,前端应用可能采用前端框架(比如Angular、Vue等)向后端应用发送请求,这种请求就是跨域请求,后端应用就需要允许跨域资源共享。

★ 跨域资源共享的配置

局部方式:使用@CrossOrigin注解修饰控制器的处理方法即可。
局部就是设定只有某个方法可以被跨域请求。

全局方式:在容器中定义一个WebMvcConfigurer或WebFluxConfigurer Bean,并在该Bean中实现自定义的addCorsMappings(CorsRegistry)方法来设置全局的CORS配置。
(就是定义一个配置类,实现 WebMvcConfigurer 或 WebFluxConfigurer 类)

假如要配置全局的COS@Configuration
public class Config implements WebMvcConfigurer
{@Override
public void addCorsMappings(CorsRegistry registry) 
{// 指定对于/api/**路径下的所有请求registry.addMapping("/api/**")// 允许接收来自于http://www.crazyit.org和http://www.fkjava.org的请求.allowedOrigins("http://www.crazyit.org", "http://www.fkjava.org")// 允许处理GET, PUT, POST, DELETE, PATCH请求.allowedMethods("GET", "PUT", "POST", "DELETE", "PATCH")// 只允许哪些请求头.allowedHeaders("header1", "header2", "header3").allowCredentials(true).maxAge(3600);// 指定对于/root/**路径下的所有请求registry.addMapping("/root/**")// 允许接收来自于http://www.crazyit.org的请求.allowedOrigins("http://www.crazyit.org")// 允许处理GET, POST请求.allowedMethods("GET", "POST ").allowCredentials(true).maxAge(1800);// ...
}
}

代码演示

局部跨域

只需要在方法上加这个注解就可以了,其他的配置参数可以写在注解的value中,如maxAge
只要这个方法添加上这个注解,就可以实现局部的跨域资源共享访问。
可以自己弄个前端项目来访问这个方法。
在这里插入图片描述

全局跨域

只需要在项目中添加这个配置类就可以了,就能实现全局跨域的设置
在这里插入图片描述

package cn.ljh.app.config;import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;//设置全局跨域资源共享
@Configuration
public class CosConfig implements WebMvcConfigurer
{@Overridepublic void addCorsMappings(CorsRegistry registry){//表示对这个项目的所有资源(就是方法)都设置跨域Cos,就是都能跨域访问
//        registry.addMapping("/**");registry//表示这个项目只有这个路径下方法可以被跨域访问到.addMapping("/books/**").maxAge(3600)//允许浏览器发送自己的身份凭证过来.allowCredentials(true)//表示只允许Get请求访问//.allowedMethods("GET")//只接受来自这个地址的跨域资源共享请求//通过设置下面这个属性,可以限制后端应用只允许前端应用所在域来访问.allowedOrigins("http://locahost:8080/");}
}

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

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

相关文章

了解稀疏数组

稀疏数组(一种数据结构) package com.mypackage.array;public class Demo08 {public static void main(String[] args) {//1.创建一个二维数组 11*11// 0:没有棋子 1:黑棋 2:白棋int[][] array1 new int[11][11];…

Redis总结(一)

目录 Redis简介 为什么使用Redis作为MySQL的缓存? 高性能 高并发 Redis数据结构及其使用场景分别是什么? String(字符串) 内部实现 常用命令 普通字符串基本操作 批量设置 计数器(字符串内容为整数时使用&a…

学习网络编程No.6【将服务器日志和守护进程化】

引言: 北京时间:2023/9/1/21:15,下午刚更新完博客,同理再接再厉,这样整天不需要干什么,除了玩手机的日子不多了,马上就要开学,每天需要签到签退的日子就要来临,烦躁&…

每日刷题-5

目录 一、选择题 二、算法题 1、不要二 2、把字符串转换成整数 一、选择题 1、 解析:printf(格式化串,参数1,参数2,.….),格式化串: printf第一个参数之后的参数要按照什么格式打印,比如%d--->按照整形方式打印&am…

基于人体呼出气体的电子鼻系统的设计与实现

基于人体呼出气体的电子鼻系统的设计与实现 摘要 电子鼻技术是通过模式识别技术对传感器采集的人体呼出气体进行分类训练的方法。本文研究实现的电子鼻系统包括下面几个部分:首先搭建以Arduino为控制核心的气路采集装置,包括MOS传感器和双阀储气袋构建的传感器阵列和…

【python绘图—colorbar操作学习】

文章目录 Colorbar的作用Colorbar的操作截取cmap拼接cmap双刻度列colorbar 引用 Colorbar的作用 Colorbar(颜色条)在绘图中的作用非常重要,它主要用于以下几个方面: 表示数据范围: Colorbar可以显示图中的颜色映射范围…

使用内网端口映射方案,轻松实现U8用友ERP的本地部署异地远程访问——“cpolar内网穿透”

文章目录 前言1. 服务器本机安装U8并调试设置2. 用友U8借助cpolar实现企业远程办公2.1 在被控端电脑上,点击开始菜单栏,打开设置——系统2.2 找到远程桌面2.3 启用远程桌面 3. 安装cpolar内网穿透3.1 注册cpolar账号3.2 下载cpolar客户端 4. 获取远程桌面…

对抗生成网络总结

对一些基本的对抗生成网络的总结。部分内容整理自Teeyohuang’s blog 文章目录 GAN (NeurIPS, 2014)CGANDCGANStackGANPix2Pix (CVPR, 2017)CycleGAN (ICCV, 2017)SRGAN (CVPR, 2017)StyleGAN (CVPR, 2019) GAN (NeurIPS, 2014) Generative adversarial nets m i n G m a x D …

Flutter的oktoast插件详解

文章目录 简介详细介绍安装和导入导入在MaterialApp外面套一层OKToast组件为什么是包住MaterialApp? 显示Toast消息: 高级使用Toast位置Toast持续时间自定义Toast样式高级用法 使用场景提示消息表单验证操作反馈网络请求状态调试信息小结 总结 简介 okt…

虚拟人三维动画宣传片案例分享 | 广州“五羊”城市文化IP商业体裸眼3D广告影片

随着时代的发展元宇宙的助推,裸眼3D形式的宣传方式逐渐出现在大众眼前。以数字人IP的3D立体效果吸引大众目光,让其驻足拍照、录视频分享至社交平台,为企业品牌带来高频传播价值。 近日,广州“五羊”城市文化IP裸眼3D广告宣传片在广…

LeetCode算法心得——和可被 K 整除的子数组(前缀和+HashMap)

大家好,我是晴天学长,同余定理的应用,需要的小伙伴可以关注支持一下哦!后续会继续更新的。 1) .和可被 K 整除的子数组 题目描述 给定一个整数数组 A,返回其中元素之和可被 K 整除的(连续、非空&#xff0…

使用k8s helm离线部署spark-operator(私有仓库)

制作镜像 docker pull ghcr.io/googlecloudplatform/spark-operator:v1beta2-1.3.8-3.1.1 docker images docker save ImageID > ./spark.tar将制作的镜像上传到目的机器中&#xff0c;加载镜像 docker load < ./spark.tar打标签其中xxxx.xxx/xx/为私有仓库的地址 doc…