目录

一、注解 @CrossOrigin 可以从controller层面解决单个controller跨域问题

二、服务中的 CorsFilter ,这个 spring webmvc 中给出过滤器层面的跨域

三、网关中的CorsWebFilter ,这个是spring webflux中的过滤器

四、通过 配置文件 进行跨域设置(微服务项目下推荐使用此方法)



一、注解 @CrossOrigin 可以从controller层面解决单个controller跨域问题

直接在需要跨域的Controller的类上添加 @CrossOrigin 跨域注解即可。

@CrossOrigin  //在controller类上添加此注解

二、服务中的 CorsFilter ,这个 spring webmvc 中给出过滤器层面的跨域

当一个模块中controlller过多时,添加注解过于繁琐,可以创建一个配置类对象,进行跨域设置,'' FilterRegistrationBean<Corsfilter> ''。

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;/*** FilterRegistrationBean<CorsFilter> 这个是web MVC中给出的过滤器* 解决多个Controller中的跨域问题*/
@Configuration
public class CorsFilterConfig {@Beanpublic FilterRegistrationBean<CorsFilter>filterFilterRegistrationBean(){UrlBasedCorsConfigurationSource configSource =new UrlBasedCorsConfigurationSource();CorsConfiguration corsConfiguration =new CorsConfiguration();corsConfiguration.addAllowedOrigin("*");corsConfiguration.addAllowedMethod("*");corsConfiguration.addAllowedHeader("*");corsConfiguration.setAllowCredentials(true);configSource.registerCorsConfiguration("/**",corsConfiguration);FilterRegistrationBean<CorsFilter> fBean =new FilterRegistrationBean<>(new CorsFilter(configSource));fBean.setOrder(Ordered.HIGHEST_PRECEDENCE);return fBean;}
}

三、网关中的CorsWebFilter ,这个是spring webflux中的过滤器

一个网关管理多个服务时,设置此配置类对象,可以从网关层面解决多个服务的跨域问题,这就不需要每个服务都写一遍跨域了。

import org.springframework.context.annotation.Bean;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.reactive.CorsWebFilter;
import org.springframework.web.cors.reactive.UrlBasedCorsConfigurationSource;/*** CorsWebFilter这个是spring webflux中的过滤器* 可以解决网关层面多个服务的跨域问题*/
@Configuration
public class CorsFilterConfig {@Beanpublic CorsWebFilter corsWebFilter(){UrlBasedCorsConfigurationSource configSource =new UrlBasedCorsConfigurationSource();CorsConfiguration config = new CorsConfiguration();config.addAllowedOrigin("*");config.addAllowedMethod("*");config.addAllowedHeader("*");config.setAllowCredentials(true);configSource.registerCorsConfiguration("/**",config);return new CorsWebFilter(configSource);}
}

四、通过 配置文件 进行跨域设置(微服务项目下推荐使用此方法)

此方法在微服务项目下可以配置到nacos等配置中心, 未来项目发布后能更灵活的处理各种请求。

spring:cloud:gateway:globalcors: #跨域配置corsConfigurations:'[/**]':allowedOrigins: "*"allowedHeaders: "*"allowedMethods: "*"allowCredentials: true

四种Java跨域配置相关推荐

  1. Spring Security(七) ——跨域配置

    一:CORS跨域简介 CORS (Cross-Origin Resource Sharing )是由W3C制定的一种基于 HTTP 头的跨域资源共享技术标准,其目的就是为了解决前端的跨域请求,该机制通 ...

  2. 四种Java线程池用法解析

    四种Java线程池用法解析 本文为大家分析四种Java线程池用法,供大家参考,具体内容如下 http://www.jb51.net/article/81843.htm 1.new Thread的弊端 ...

  3. html 跨域_常见跨域解决方案以及Ocelot 跨域配置

    常见跨域解决方案以及Ocelot 跨域配置 Intro 我们在使用前后端分离的模式进行开发的时候,如果前端项目和api项目不是一个域名下往往会有跨域问题.今天来介绍一下我们在Ocelot网关配置的跨域 ...

  4. ASP.NET Core微服务(三)——【跨域配置】

    ASP.NET Core微服务(三)--[跨域配置] 对应练习demo(跨域)下载路径(1积分):[https://download.csdn.net/download/feng8403000/151 ...

  5. 常见跨域解决方案以及Ocelot 跨域配置

    常见跨域解决方案以及Ocelot 跨域配置 Intro 我们在使用前后端分离的模式进行开发的时候,如果前端项目和api项目不是一个域名下往往会有跨域问题.今天来介绍一下我们在Ocelot网关配置的跨域 ...

  6. java分布式_分布式锁的四种JAVA实现方式

    前言 作为这一段时间学习分布式锁的总结,本文总结了四种Java分布式锁的实现方式,简单编写了代码,进行模拟实现.相关代码存放在我的github仓库. 为什么要用锁 系统内,有多个消费者,需要对同一共享 ...

  7. SpringCloud Gataway 跨域配置

    SpringCloud Gataway 跨域配置 Spring Boot版本:2.3.4.RELEASE Spring Cloud版本:Hoxton.SR8 一.通过配置文件配置跨域 spring:c ...

  8. css毛玻璃效果/el-progress进度条渐变/axios的基本使用/跨域配置/关闭eslint验证

    css磨砂效果 效果图 实现方法 <!DOCTYPE html> <html lang="en"><head><meta charset= ...

  9. VUE的proxyTable使用记录和java跨域设置

    记一次前端解决跨域: 在webpack的dev节点中找到proxyTable,设置如下 proxyTable: {'/': {target: 'http://localhost:8088',chang ...

  10. springboot2.4跨域配置的方法

    这篇文章主要介绍了springboot2.4跨域配置的方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 1.如果只是一个简单的springbo ...

最新文章

  1. 本地安装gem install --local redis-stat-0.4.13.gem
  2. eclipse maven项目 maven build 提示jdk版本不对
  3. 微信 html5禁止拖拽,js实现微信禁止h5网页下拉,禁止微信内置浏览器下拉网页...
  4. kubernetes与web集群
  5. 连接mysql数据库格式_MySQL_Mysql数据库命令大全,一、连接Mysql格式: mysql -h - phpStudy...
  6. SpringBoot实战之文件上传微软云(Azure Storage)
  7. 程序员必读书籍及导读指南
  8. ESP8285+WS2812+MAX9814制作的音乐律动氛围灯
  9. java后端使用itextPDF生成PDF文件
  10. 带通滤波器中心频率计算公式中R是哪个值_LCC-HVDC 交流滤波器选择策略
  11. 小米手机怎么开启开发者模式
  12. 微信推送封面尺寸_一篇公众号推文如何设置两张封面图?
  13. 用的上的商学课51-100课学习笔记
  14. C语言(11),用程序写简单图形。
  15. Switch 链接OBS Studio输出声音(无延迟)的方法
  16. 转载精品:工作8年的普通专科生程序员的一些感悟
  17. 健身运动燃烧脂肪的三个必要条件
  18. 金华职业技术学院计算机教研室主任,机械技术系主任及教师赴金华职业技术学院走访调研...
  19. C语言运算符逻辑运算符位运算符
  20. 堪称神级的Java技术栈手册火了!

热门文章

  1. 韩顺平php从入门到精通讲义,传智播客_韩顺平_php从入门到精通
  2. 超详细的UI设计软件教程与资料
  3. 在线直播网站源码开发,音视频同步的处理方案及选择
  4. 强大新UI装逼神器微信小程序源码+多模板支持多种流量主模式
  5. Dev C++下载地址和安装教程(图解版)
  6. 高阶篇:4.4)FMEA手册的疑问与不足(个人观点)
  7. Java程序性能优化- 让你的Java程序更快、更稳定pdf
  8. 科学计算器 c语言源代码,科学计算器C语言代码
  9. SVN删除文件及其恢复
  10. Java语言程序设计(第3版)沈泽刚主编第6,7,8章课后习题答案