当前位置: 首页 > news >正文

SpringBoot 如何处理跨域请求

SpringBoot 处理跨域请求,通常是通过配置全局的 CORS(跨源资源共享)策略来实现的。CORS 是一种机制,它使用额外的 HTTP 头部来告诉浏览器,让运行在一个 origin (domain) 上的 web 应用被准许访问来自不同源服务器上的指定的资源。

在 SpringBoot 应用中,可以通过几种方式来实现 CORS 支持:

1. 使用 @CrossOrigin 注解

你可以在你的 Controller 或方法上使用 @CrossOrigin 注解来允许跨域请求。这个注解提供了灵活的配置选项,比如允许哪些域名、HTTP 方法等。

@RestController
@CrossOrigin(origins = "http://example.com")
public class MyController {@GetMapping("/greeting")public String greeting() {return "Hello, World!";}
}

或者,只在特定的方法上应用:

@RestController
public class MyController {@GetMapping("/greeting")@CrossOrigin(origins = "http://example.com")public String greeting() {return "Hello, World!";}
}

2. 自定义 CORS 配置

对于更复杂的 CORS 需求,你可以通过实现 WebMvcConfigurer 接口并覆盖 addCorsMappings 方法来全局配置 CORS。

@Configuration
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**").allowedOrigins("http://example.com").allowedMethods("GET", "POST", "PUT", "DELETE").allowedHeaders("*").allowCredentials(true);}
}

在这个例子中,addMapping("/**") 表示对所有路径都应用 CORS 策略,allowedOrigins 设置了允许访问的源,allowedMethods 设置了允许的 HTTP 方法,allowedHeaders 允许任何头部信息,allowCredentials(true) 表示允许发送 Cookies。

http://www.lryc.cn/news/412194.html

相关文章:

  • 大数据技术基础编程、实验和案例----大数据课程综合实验案例
  • 微信小程序-获取手机号:HttpClientErrorException: 412 Precondition Failed: [no body]
  • 大数据核心概念与技术架构简介
  • 快排 谁在中间
  • ORA-00911: invalid character
  • Pytorch实现线性回归Linear Regression
  • 十八次(虚拟主机与vue项目、samba磁盘映射、nfs共享)
  • P1340 兽径管理 题解|最小生成树
  • Python,Maskrcnn训练,cannot import name ‘saving‘ from ‘keras.engine‘ ,等问题集合
  • Linux常用工具
  • AI未来的发展如何
  • 若依替换首页上的logo
  • sed的使用示例
  • 学历不是障碍:大专生如何成功进入软件测试行业
  • 文件解析漏洞—IIS解析漏洞—IIS6.X
  • Sqlmap中文使用手册 - Brute force模块参数使用
  • ubuntu20.04 开源鸿蒙源码编译配置
  • 程序员面试 “八股文”在实际工作中是助力、阻力还是空谈?
  • 广告从用户点击开始到最终扣费的过程
  • Linux系统编程-信号进程间通信
  • Attention Module (SAM)是什么?
  • 【C语言】堆排序
  • ntp服务重启报错Failed to restart ntpd.service: Unit is masked.
  • 面试题-每日5到
  • 代码美学大师:打造Perl中的个性化代码格式化工具
  • 成为一名月薪 2 万的 web 安全工程师需要掌握哪些技能?
  • Linux中如何添加磁盘分区
  • 计算机毕业设计Hadoop+Hive专利分析可视化 面向专利的大数据管理系统 专利爬虫 专利数据分析 大数据毕业设计 Spark
  • git是什么?git和svn的区别。git的一些命令
  • RK3568平台(触摸篇)双屏异触调试