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

springboot 跨域配置

方案一
@Configuration
public class GlobalCorsConfig {@Beanpublic CorsFilter corsFilter() {//1. 添加 CORS配置信息CorsConfiguration config = new CorsConfiguration();//放行哪些原始域config.addAllowedOrigin("*");//是否发送 Cookieconfig.setAllowCredentials(true);//放行哪些请求方式config.addAllowedMethod("*");//放行哪些原始请求头部信息config.addAllowedHeader("*");//暴露哪些头部信息config.addExposedHeader("*");//2. 添加映射路径UrlBasedCorsConfigurationSource corsConfigurationSource = new UrlBasedCorsConfigurationSource();corsConfigurationSource.registerCorsConfiguration("/**",config);//3. 返回新的CorsFilterreturn new CorsFilter(corsConfigurationSource);}
}
方案二
// 案例 一
@Configuration
public class CorsConfig implements WebMvcConfigurer {@Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**")//是否发送Cookie.allowCredentials(true)//放行哪些原始域.allowedOrigins("*").allowedMethods(new String[]{"GET", "POST", "PUT", "DELETE"}).allowedHeaders("*").exposedHeaders("*");}
}
方案三

在控制器(类上)上使用注解 @CrossOrigin:,表示该类的所有方法允许跨域

在方法上使用注解 @CrossOrigin:

方案四
package cn.wideth.aop;import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletResponse;
import org.springframework.stereotype.Component;@Component
public class MyCorsFilter implements Filter {public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {HttpServletResponse response = (HttpServletResponse) res;response.setHeader("Access-Control-Allow-Origin", "*");response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");response.setHeader("Access-Control-Max-Age", "3600");response.setHeader("Access-Control-Allow-Headers", "x-requested-with,content-type");chain.doFilter(req, res);}public void init(FilterConfig filterConfig) {}public void destroy() {}
}

方案五

package com.yiyi.yiyigateway.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.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;
import org.springframework.web.reactive.config.CorsRegistry;
import org.springframework.web.reactive.config.WebFluxConfigurer;
import org.springframework.web.util.pattern.PathPatternParser;/*** @author zrf* @date 2024-50-28 11:50:32* @description 全局跨域配置*/
@Configuration
public class GlobalCorsConfig implements WebFluxConfigurer {/*** 方案一* @return*/@Beanpublic CorsWebFilter corsFilter() {CorsConfiguration config = new CorsConfiguration();config.setAllowCredentials(true); // 允许cookies跨域config.addAllowedOrigin("*");// #允许向该服务器提交请求的URI,*表示全部允许,在SpringMVC中,如果设成*,会自动转成当前请求头中的Originconfig.addAllowedHeader("*");// #允许访问的头信息,*表示全部config.addAllowedMethod("*");// 允许提交请求的方法类型,*表示全部允许config.setMaxAge(18000L);// 预检请求的缓存时间(秒),即在这个时间段里,对于相同的跨域请求不会再预检了UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());source.registerCorsConfiguration("/**", config);return new CorsWebFilter(source);}/*** 方案二 实现WebFluxConfigurer重写addCorsMappings方法* @param registry*//* @Overridepublic void addCorsMappings(CorsRegistry registry) {registry.addMapping("/**")//允许路径.allowedHeaders("*").allowedOrigins("*").allowedMethods("*").allowCredentials(true).maxAge(36000);}*/}
http://www.lryc.cn/news/513717.html

相关文章:

  • C语言宏和结构体的使用代码
  • 微信小程序 覆盖组件cover-view
  • 【Redis知识】Redis进阶-redis还有哪些高级特性?
  • 【Pytorch实用教程】深入了解 torchvision.models.resnet18 新旧版本的区别
  • 攻防世界 - Web - Level 3 | very_easy_sql
  • 使用Java Selenium修改打开页面窗口大小
  • 基于BiLSTM和随机森林回归模型的序列数据预测
  • 【Vim Masterclass 笔记04】S03L12:Vim 文本删除同步练习课 + S03L13:练习课点评
  • [AI] 深度学习的“黑箱”探索:从解释性到透明性
  • 网络安全技能试题总结参考
  • 【翻译】优化加速像素着色器执行的方法
  • 赛博周刊·2024年度工具精选(图片资源类)
  • 【深度学习基础之多尺度特征提取】多尺度图像增强(Multi-Scale Image Augmentation)是如何在深度学习网络中提取多尺度特征的?附代码
  • Spring Boot项目启动时显示MySQL连接数已满的错误
  • 小程序多入口对应指定客服的实现方案:小程序如何实现接入指定客服人员?
  • 网页单机版五子棋小游戏项目练习-初学前端可用于练习~
  • 【玩转23种Java设计模式】行为型模式篇:命令模式
  • 【Spring MVC 常用注解】注解驱动开发的魔法
  • jmeter分布式启动
  • 数据仓库中的指标体系模型介绍
  • 混合合并两个pdf文件
  • aws(学习笔记第二十一课) 开发lambda应用程序
  • JavaWeb Servlet的getInitParameter、业务层、控制反转IOC和依赖注入DI
  • 免费开源跨平台SSH工具 WindTerm:媲美 xshell 的最佳平替(含详细使用教程)
  • 洛谷 P1075 [NOIP2012 普及组] 质因数分解 C语言
  • Apache Hive常见问题
  • 活动报名系统源码:JAVA同城服务系统活动报名同城圈子商家商城城市代理躲猫猫
  • 迈向Z级计算:Cloud4Science范式加速科学发现进程
  • ES IK分词字典热更新
  • Mac连接云服务器工具推荐