Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >今日代码大赏 | Spring Boot 跨域配置

今日代码大赏 | Spring Boot 跨域配置

作者头像
程序员鱼皮
发布于 2024-05-10 11:47:06
发布于 2024-05-10 11:47:06
20500
代码可运行
举报
文章被收录于专栏:鱼皮客栈鱼皮客栈
运行总次数:0
代码可运行

当前端和后端部署在不同的域名下时,会出现跨域问题。Spring Boot 框架提供了一种简单的方式来处理 CORS,允许开发者定义全局的跨域配置。

在 Spring Boot 中,我们可以使用 CorsWebFilter 来全局配置 CORS。

下面是 Spring Boot 中配置 CORS 的示例代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.util.pattern.PathPatternParser;

import java.util.Arrays;

// 处理跨域的配置类
@Configuration
public class CorsConfig {

    @Bean
    public CorsWebFilter corsFilter() {
        CorsConfiguration config = new CorsConfiguration(); // 创建CORS配置
        config.addAllowedMethod("*"); // 允许所有HTTP方法
        config.setAllowCredentials(true); // 允许cookies
        // @todo 将下面的通配符替换为线上环境的真实域名
        config.setAllowedOriginPatterns(Arrays.asList("*")); // 允许所有域名
        config.addAllowedHeader("*"); // 允许所有头

        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
        source.registerCorsConfiguration("/**", config); // 为所有路径注册CORS配置

        return new CorsWebFilter(source); // 创建CorsWebFilter
    }
}

CORS 配置的优点

  • 安全性:允许开发者在放松同源策略的同时,仍然保持对哪些源可以访问资源的控制。
  • 灵活性:可以为不同的路径设置不同的CORS策略。

今天的代码大赏就到这里。希望通过这篇文章,你能够对 Spring Boot 跨域配置有一个更深入的理解。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-05-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员鱼皮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
gateway 跨域问题解决方案
1.写个配置类CorsConfig (如果不行,可以不写此类,和springcloud的版本有关)
FHAdmin
2021/06/05
1.3K0
spring cloud gateway 跨域设置
在springcloud gateway用在微服务里面的时候,在开发环境里面因为要不同的端口对应不同的服务,可能会有因为端口问题造成的跨域问题,那么要通过在网关里设置跨域,因为springcloud gateway用的是webflux,所以要在webflux层设置过滤器。 代码如下:
zcqshine
2019/04/18
4K0
springcloud gateway引入CORS
springcloud gateway引入cors(全称Cross-Origin Resource Sharing,跨站资源共享),是用于限制资源访问的一种方式,比如我们限制某些接口或者图片资源不被除允许外的站点访问,springcloud gateway做了访问系统资源的第一道门槛,CORS功能一般都会放在springcloud gateway应用中,而不是放在单独的引用中,springcloud gateway引入cors配置有两种方式:
johnhuster的分享
2022/03/29
6000
spring cloud修复zuul跨域配置异常
跨域就指着协议,域名,端口不一致,出于安全考虑,跨域的资源之间是无法交互的。简单说就是协议不通,域名不通,端口不同都会产生跨域问题。
Cheng_Blog
2022/02/25
4390
SpringBoot 跨域问题:Access to XMLHttpRequest at ‘***‘ from origin ‘***‘ has been blocked by CORS policy
CORS 跨站点资源分享,属于跨域问题,同个 IP 的不同端口间的访问也属于跨域。
wsuo
2020/10/26
17K0
SpringBoot 跨域问题:Access to XMLHttpRequest at ‘***‘ from origin ‘***‘ has been blocked by CORS policy
解决跨域问题的8种方法,含网关、Nginx和SpringBoot~
跨域问题是浏览器为了保护用户的信息安全,实施了同源策略(Same-Origin Policy),即只允许页面请求同源(相同协议、域名和端口)的资源,当 JavaScript 发起的请求跨越了同源策略,即请求的目标与当前页面的域名、端口、协议不一致时,浏览器会阻止请求的发送或接收。
磊哥
2024/01/25
6.2K0
解决跨域问题的8种方法,含网关、Nginx和SpringBoot~
【微服务】Gateway 微服务的网关 后端程序猿必经之路
前面的文章已经完成了服务之间的调用,但是我们怎么才能实现外部调用服务的接口呢。 首先我们可以把通过直接调用 公网ip+端口 的形式进行调用,这种方式肯定是可行的,但是这样直接把ip和端口暴露出来,肯定是不安全的,万一有大佬把你的服务器黑了,这就有点难受了(曾经被清理过数据库数据的受害者表示 我一个学生的服务器你黑个什么劲)。
小王不头秃
2024/06/19
2430
【微服务】Gateway 微服务的网关 后端程序猿必经之路
实战:十分钟实现基于JWT前后端分离的权限框架
面试过很多Java开发,能把权限这块说的清楚的实在是不多,很多人因为公司项目职责问题,很难学到这类相关的流程和技术,本文梳理一个简单的场景,实现一个基于jwt前后端分离的权限框架。
JAVA葵花宝典
2020/07/15
1.4K0
Spring Boot跨域配置
配置类解决跨域问题,需要实现WebMvcConfigurer package com.faw.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.c
P轴
2022/11/18
2440
CorsConfig 跨域 初认识
跨域请求的流程: 浏览器 先会给服务器发送一个 预检请求 ,服务器 返回同意不同意 ,同意的话 浏览器 在发送真实的请求 ,服务再返回响应成功是否
默 语
2024/11/20
860
CorsConfig 跨域 初认识
微服务网关组件 - Spring Cloud Gateway 扩展(二十五)
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
用户1212940
2019/11/13
1.6K0
Spring Boot解决跨域问题-最简单的方式
省去了使用过滤器什么的配置文件、又是拦截器、又是@Configuration注解 最简单的,直接再springboot启动类上加上相关的代码即可。 package com.englishcode.test; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot
知识浅谈
2021/05/10
3490
Spring Boot解决跨域问题的技术方案及代码示例
当前端应用(如SPA应用或移动Hybrid应用中的Web视图)通过JavaScript发起HTTP请求到与当前页面所在源不同的服务器时,就涉及到了跨域。例如,前端应用部署在 `http://app.example.com` ,但尝试访问位于 `http://api.example.net` 的API服务,由于协议、域名或端口至少有一项不同,浏览器会按照同源策略阻止这种跨域请求,除非服务器明确表明允许这样的跨域访问。
用户7353950
2024/05/20
3950
Spring Boot解决跨域问题的技术方案及代码示例
SpringCloud Alibaba学习笔记 ——(五、新一代服务网关 Gateway)
传统方式我们可以使用 过滤器拦截用户会话信息,这个过程所有的服务都必须写入该验证会话登录的代码。
Gorit
2021/12/30
6650
SpringCloud Alibaba学习笔记 ——(五、新一代服务网关 Gateway)
在Zuul网关解决跨域问题
在Zuul服务中做如下操作 添加config 包,并创建CORS跨域配置类代码如下(有硬编码): import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.cors.CorsConfiguration; import org.springframework.web.cors.Ur
用户9006224
2022/12/21
8200
在Zuul网关解决跨域问题
SpringBoot 跨域配置
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/148580.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/02
4430
CORS
CORS是一个 W3C 标准,全称是”跨域资源共享”(Cross-origin resource sharing)。 它允许浏览器向跨源服务器,发出 XMLHttpRequest 请求,从而克服了 AJAX 只能同源使用的限制。
摸鱼的G
2023/02/22
6070
Spring Cloud Gateway实战之一:初探
《Spring Cloud Gateway实战》是欣宸在Java领域的系列原创,旨在通过项目实战与大家一起学习和掌握Spring Cloud Gateway,更好的为实际项目服务
程序员欣宸
2021/12/07
5050
Spring Cloud Gateway实战之一:初探
前后端分离项目,引入 Spring Cloud Gateway 遇到的一个问题!
我的mall项目升级到微服务架构以后,加入了基于Spring Cloud Gateway的网关系统,前端调用相关服务时应该统一从网关进行调用,本以为前端直接调用网关没啥问题,后来发现会产生无法调用的情况,下面我们来记录下这个问题以及解决思路。
macrozheng
2020/01/17
1K0
前后端分离项目,引入 Spring Cloud Gateway 遇到的一个问题!
跨域问题 之浏览器报No 'Access-Cotrol-Allow-Origin‘
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
多凡
2019/11/01
5830
推荐阅读
相关推荐
gateway 跨域问题解决方案
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验