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

SpringBoot 跨域问题(CORS)彻底解决方案

在前后端分离项目中跨域CORS是前端同学联调时最常遇到的问题没有之一。浏览器同源策略限制、请求被拦截、控制台报CORS error都是典型的跨域现象。今天我们来讲讲什么是跨域、为什么会跨域、SpringBoot 最全跨域解决方案。一、什么是跨域为什么会出现1. 同源策略浏览器安全限制浏览器只允许协议 域名 端口 完全一致才能正常请求。只要有一项不一样就会触发跨域拦截http://localhost:8080→http://localhost:9090端口不同 → 跨域http://localhost:8080→http://127.0.0.1:8080域名不同 → 跨域http://localhost:8080→https://localhost:8080协议不同 → 跨域2. 跨域报错特征控制台红色错误Access to XMLHttpRequest at... blocked by CORS policy前端请求发送失败后端收不到请求OPTIONS 预检请求被拦截二、SpringBoot 跨域 4 种解决方案方案 1注解方式最简单单个接口/Controller在Controller 类上加一个注解1RestController 2RequestMapping(/user) 3CrossOrigin// 允许所有跨域 4publicclassUserController{ 5}支持精细化配置1CrossOrigin( 2 origins http://localhost:8081,// 只允许这个前端地址 3 maxAge 3600 4)优点简单缺点只能单个Controller生效不适合大型项目方案 2全局配置类企业最常用一次配置全局所有接口生效。创建CorsConfig.java1importorg.springframework.context.annotation.Bean; 2importorg.springframework.context.annotation.Configuration; 3importorg.springframework.web.cors.CorsConfiguration; 4importorg.springframework.web.cors.UrlBasedCorsConfigurationSource; 5importorg.springframework.web.filter.CorsFilter; 6 7/** 8* 全局跨域配置 9*/ 10Configuration 11publicclassCorsConfig{ 12 13Bean 14publicCorsFiltercorsFilter(){ 15CorsConfiguration config newCorsConfiguration(); 16// 1. 允许所有域名跨域生产可指定具体地址 17 config.addAllowedOriginPattern(*); 18// 2. 允许所有请求头 19 config.addAllowedHeader(*); 20// 3. 允许所有请求方法 21 config.addAllowedMethod(*); 22// 4. 允许携带CookieToken、Session 23 config.setAllowCredentials(true); 24// 5. 预检有效期 25 config.setMaxAge(3600L); 26 27UrlBasedCorsConfigurationSource source newUrlBasedCorsConfigurationSource(); 28 source.registerCorsConfiguration(/**, config); 29returnnewCorsFilter(source); 30} 31}✅ 复制即用全局所有接口立刻解决跨域方案 3Spring Security 中的跨域配置如果项目集成了Spring Security / Sa-Token / Shiro必须在安全框架中开启跨域1Bean 2publicSecurityFilterChainsecurityFilterChain(HttpSecurity http)throwsException{ 3 http 4.cors()// 开启跨域 5.and() 6.csrf().disable(); 7return http.build(); 8}重点安全框架拦截优先级最高只配置方案2会失效方案 4网关统一处理微服务项目Spring Cloud / Spring Gateway 项目必须在网关配置跨域不要在微服务里配置。application.yml1spring: 2 cloud: 3 gateway: 4 globalcors: 5 cors-configurations: 6 [/**]: 7allowedOriginPatterns:* 8allowedHeaders:* 9allowedMethods:* 10allowCredentials:true三、为什么配置了还跨域1. 配置不生效的常见原因Spring Security / 权限框架拦截→ 必须开启.cors()跨域配置类未被扫描→ 检查包路径、Configuration重复配置跨域→ 多个跨域配置冲突前端携带了自定义请求头→ 必须允许所有头使用了 CrossOrigin 全局配置冲突2. 解决方案直接使用方案2全局CorsFilter并且权限框架中开启 cors几乎 100% 解决所有跨域问题。四、生产环境跨域建议不要用 allowedOrigins(*)要指定前端域名1config.addAllowedOrigin(https://www.xxx.com);**允许携带Cookie时不能用 * **预检请求缓存时间设长一点maxAge微服务只在网关配置跨域五、一句话总结跨域是浏览器安全限制后端必须开启 CORS单体项目用全局 CorsFilter方案2安全框架项目必须.cors()开启微服务在网关统一配置配置一次永久告别 CORS 错误

相关文章:

SpringBoot 跨域问题(CORS)彻底解决方案

在前后端分离项目中,跨域(CORS) 是前端同学联调时最常遇到的问题,没有之一。浏览器同源策略限制、请求被拦截、控制台报 CORS error,都是典型的跨域现象。今天我们来讲讲什么是跨域、为什么会跨域、SpringBoot 最全跨域…...

Python MCP服务性能翻倍实录:基于asyncpg+uvloop+Pydantic V2的模板优化路径(QPS从83→417实测数据)

第一章:Python MCP服务性能翻倍实录:基于asyncpguvloopPydantic V2的模板优化路径(QPS从83→417实测数据) 在高并发MCP(Microservice Control Plane)服务场景中,原基于Flask SQLAlchemy CPyth…...

企业内部AI定制哪家强?

企业内部AI定制,难道不是数谷智能科技的核心专长吗?在2026年的大湾区商业版图中,“数字化”早已不再是选择题,而是关乎生存的底座。从深圳龙岗的跨境电商写字楼,到东莞松山湖的精密智造车间,管理者们正面临…...

实战指南:在快马平台用llmfit打造适用于移动端的轻量级文本生成模型

今天想和大家分享一个实战项目:如何在移动端部署轻量级文本生成模型。最近在做新闻类App开发时,遇到一个需求——根据用户输入的关键词自动生成吸引眼球的新闻标题。由于要在手机端实时运行,模型必须足够轻量,这就引出了我们今天的…...

分布式缓存一致性:从核心争议到企业级解决方案

分布式缓存一致性:从核心争议到企业级解决方案 分布式缓存一致性是高并发架构中最经典的难题之一。它的本质在于:数据库(如 MySQL)和缓存(如 Redis)是两个独立的系统,我们无法通过单一的本地事务…...

手搓LabVIEW声音采集系统——从调参到装X全攻略

Labview程序开发——声音采集系统 基于 Labview软件,以声卡为数据采集设备开发数据采集处理系统。 系统功能应包括: 1)声卡参数设置:包括设备ID号,采样模式,每通道采样点 数,采样率,通道数等参数设置; 2) 文件操作:实现…...

C语言头文件规范与工程实践优化指南

C语言头文件包含规范与工程实践指南1. 头文件包含问题的工程背景1.1 典型问题场景在嵌入式C语言开发中,当工程规模较小时,头文件包含问题往往不易显现。但随着项目代码量增长到数千甚至数万行时,不合理的头文件包含方式会导致以下典型问题&am…...

生产环境的 AOP:性能损耗分析与异常处理最佳实践

在开发环境,AOP 是我们的神兵利器,日志、事务、权限一把梭。 但在生产环境,AOP 往往是一把双刃剑: 用好了,它是系统的“黑匣子”和“安全网”; 用不好,它就是性能杀手和故障黑洞。很多开发者最怕…...

从汽车以太网到智能座舱:TSN的CBS和抢占式TAS如何保障你的行车安全与娱乐体验

从汽车以太网到智能座舱:TSN的CBS和抢占式TAS如何保障行车安全与娱乐体验 当你在高速公路上开启自动驾驶功能,车辆需要同时处理毫米波雷达的实时数据、中控屏的4K视频流以及车窗升降的指令——这些需求对网络传输的要求截然不同。传统车载网络架构正面临…...

如何快速优化Windows性能:Atlas OS完整安装与配置指南

如何快速优化Windows性能:Atlas OS完整安装与配置指南 【免费下载链接】Atlas 🚀 An open and lightweight modification to Windows, designed to optimize performance, privacy and security. 项目地址: https://gitcode.com/GitHub_Trending/atlas…...

轻量级C++ HTTP库:cpp-httplib极速集成指南

轻量级C HTTP库:cpp-httplib极速集成指南 【免费下载链接】cpp-httplib A C header-only HTTP/HTTPS server and client library 项目地址: https://gitcode.com/GitHub_Trending/cp/cpp-httplib 核心价值:单文件驱动的开发效率革命 cpp-httplib…...

终极资源下载神器:三分钟上手,轻松获取全网视频音频资源

终极资源下载神器:三分钟上手,轻松获取全网视频音频资源 【免费下载链接】res-downloader 资源下载器、网络资源嗅探,支持微信视频号下载、网页抖音无水印下载、网页快手无水印视频下载、酷狗音乐下载等网络资源拦截下载! 项目地址: https:…...

3步掌握RISC-V处理器仿真:可视化工具Ripes完全指南

3步掌握RISC-V处理器仿真:可视化工具Ripes完全指南 【免费下载链接】Ripes A graphical processor simulator and assembly editor for the RISC-V ISA 项目地址: https://gitcode.com/gh_mirrors/ri/Ripes 想要深入理解计算机底层运行机制却苦于硬件门槛太高…...

使用MobaXterm远程开发Retinaface+CurricularFace项目

使用MobaXterm远程开发RetinafaceCurricularFace项目 1. 项目概述与准备工作 RetinafaceCurricularFace是当前人脸识别领域的热门组合方案,Retinaface负责精准的人脸检测和对齐,CurricularFace则提供高质量的人脸特征提取和识别能力。在实际开发中&…...

如何突破窗口限制?专业窗口调整工具让桌面管理效率提升300%

如何突破窗口限制?专业窗口调整工具让桌面管理效率提升300% 【免费下载链接】WindowResizer 一个可以强制调整应用程序窗口大小的工具 项目地址: https://gitcode.com/gh_mirrors/wi/WindowResizer 你是否曾遇到过这样的困扰:重要的应用程序窗口无…...

C++标准库算法与自定义迭代器的适配器模式实现技巧

C标准库算法与迭代器适配技巧 C标准库提供了丰富的泛型算法,如sort、find、transform等,这些算法通过迭代器与容器解耦,极大提升了代码复用性。但当标准迭代器无法满足特殊需求时,适配器模式成为连接算法与自定义数据结构的桥梁。…...

Alias Method:游戏掉落系统的O(1)采样优化实践

1. 游戏掉落系统的随机采样困境 每个游戏开发者都会遇到这样的场景:当玩家击败怪物时,系统需要根据预设概率随机掉落物品。比如某Boss的掉落表可能是:传说武器(1%)、史诗装备(5%)、稀有材料&…...

“COMSOL 18650电池组蛇形液冷模型:集总电池组耦合传热与流场模拟”

comsol18650电池组蛇形液冷模型 采用集总电池组耦合传热和流场 模拟圆柱形电池模组在外部液冷散热下的热性能,电性能等锂离子电池模组在快充场景下产生的热量能直接让表面温度突破60℃,这对电动车的安全性和寿命都是致命威胁。去年参与某车企电池包项目时…...

如何使用Photon光影包提升Minecraft视觉体验:从安装到高级配置完全指南

如何使用Photon光影包提升Minecraft视觉体验:从安装到高级配置完全指南 【免费下载链接】photon A shader pack for Minecraft: Java Edition 项目地址: https://gitcode.com/gh_mirrors/photon3/photon Photon光影包是一款为Minecraft: Java Edition设计的高…...

从实战到原理:镜头畸变问题的深度解析与应对策略

1. 当镜头开始"说谎":工程师亲历的畸变异常事件 上周调试项目时遇到了一个诡异现象:用120度广角镜头拍摄的棋盘格图像,中间区域像被无形的手向内挤压,边缘却反常地向外膨胀。这既不是典型的桶形畸变(边缘向内…...

Qwen3-ASR-0.6B企业应用:呼叫中心实时转录+方言识别生产环境实践

Qwen3-ASR-0.6B企业应用:呼叫中心实时转录方言识别生产环境实践 1. 项目背景与价值 在现代企业客服场景中,语音通话仍然是客户沟通的主要方式。传统的呼叫中心面临着一个普遍痛点:大量通话内容需要人工记录和整理,不仅效率低下&…...

为什么你需要ZXPInstaller?3分钟搞定Adobe扩展安装难题

为什么你需要ZXPInstaller?3分钟搞定Adobe扩展安装难题 【免费下载链接】ZXPInstaller Open Source ZXP Installer for Adobe Extensions 项目地址: https://gitcode.com/gh_mirrors/zx/ZXPInstaller 还在为Adobe扩展插件安装而烦恼吗?每次看到.z…...

微信聊天记录终极保存方案:3步永久备份你的珍贵回忆

微信聊天记录终极保存方案:3步永久备份你的珍贵回忆 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeChatM…...

FPGA仿真数据高效流转:Vivado与Matlab的自动化处理链路

1. 从Vivado到Matlab的数据流转痛点 做过FPGA开发的朋友都知道,仿真阶段产生的数据就像金矿,但要把这些"矿石"提炼成有价值的分析结果,中间的数据搬运工作常常让人头疼。我最近在做一个无线通信项目时就深有体会:Vivado…...

不止于解题:用玄机靶场案例,打造你的自动化安全日志监控脚本

不止于解题:用玄机靶场案例打造自动化安全日志监控脚本 在网络安全领域,日志分析往往是防御的第一道防线。当我们在玄机靶场中完成SSH爆破日志分析的解题后,是否想过将这些手动操作转化为自动化工具?本文将带你从单次解题跃升到持…...

MusePublic离线素材库:内置1000+优质Prompt模板一键调用

MusePublic离线素材库:内置1000优质Prompt模板一键调用 1. 项目简介:你的专属艺术人像创作引擎 想象一下,你是一位时尚摄影师或数字艺术家,脑海中有一个绝妙的画面:一位身着复古长裙的模特,在黄昏的巴黎街…...

零基础入门:收藏必备!从Agent概念到实战构建,小白也能掌握AI新趋势

本文系统梳理了AI Agent的核心概念、原理及构建模式,通过对比ReAct和Plan-and-Execute等主流模式,阐述了Agent如何从被动对话转向主动行动。文章详细介绍了构建Agent的思路和关键组件,如主程序、行为说明书和工具集,适合对AI Agen…...

百川2-13B-4bits商业授权指南:OpenClaw项目合规使用须知

百川2-13B-4bits商业授权指南:OpenClaw项目合规使用须知 1. 为什么需要关注商业授权 去年我在开发一个OpenClaw自动化写作助手时,差点踩到一个大坑。当时我兴奋地接入了百川2-13B模型,准备用它来生成初稿内容。直到有朋友提醒,我…...

【限时技术白皮书首发】:《边缘Python量化工具实战手册》V2.1——涵盖TVM 0.14 + MLIR + 自定义OP全流程

第一章:边缘Python量化工具概览与V2.1核心升级边缘Python量化工具是一套面向嵌入式AI场景的轻量级模型压缩与部署框架,专为资源受限设备(如RISC-V MCU、Cortex-M7、ESP32-S3等)设计,支持从PyTorch/TensorFlow模型无缝转…...

OpenClaw技能组合:GLM-4.7-Flash多技能协同工作的配置技巧

OpenClaw技能组合:GLM-4.7-Flash多技能协同工作的配置技巧 1. 为什么需要多技能协同? 去年冬天,我接手了一个内容运营的兼职项目。每天需要从十几个来源收集资料,整理成Markdown笔记,再根据主题生成不同风格的公众号…...