springboot解决跨域的方式有哪些
发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这篇文章主要介绍"springboot解决跨域的方式有哪些",在日常操作中,相信很多人在springboot解决跨域的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家
千家信息网最后更新 2026年10月31日springboot解决跨域的方式有哪些
这篇文章主要介绍"springboot解决跨域的方式有哪些",在日常操作中,相信很多人在springboot解决跨域的方式有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"springboot解决跨域的方式有哪些"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
什么是跨域
跨域:指的是浏览器不能执⾏其他⽹站的脚本。它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制。
例如:a页⾯想获取b页⾯资源,如果a、b页⾯的协议、域名、端⼝、⼦域名不同,所进⾏的访问⾏动都是跨域的,⽽浏览器
为了安全问题⼀般都限制了跨域访问,也就是不允许跨域请求资源。注意:跨域限制访问,其实是浏览器的限制。理解这⼀点
很重要
同源策略:是指协议,域名,端⼝都要相同,其中有⼀个不同都会产⽣跨域;
springboot解决跨域的几种方式
方法一、SpringBoot的注解@CrossOrigin
直接在Controller方法或者类上增加@CrossOrigin注解,SpringMVC使用@CrossOrigin使用场景要求 jdk1.8+ Spring4.2+
@GetMapping("/hello")@CrossOriginpublic String hello() { return "hello:" + simpleDateFormat.format(new Date());}方式二:使用CorsFilter
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.web.cors.CorsConfiguration;import org.springframework.web.cors.UrlBasedCorsConfigurationSource;import org.springframework.web.filter.CorsFilter;@Configurationpublic class ConfigConfiguration { @Bean public CorsFilter CorsFilter() { CorsConfiguration corsConfiguration = new CorsConfiguration(); corsConfiguration.addAllowedOriginPattern("*"); corsConfiguration.addAllowedHeader("*"); corsConfiguration.addAllowedMethod("*"); corsConfiguration.setAllowCredentials(true); UrlBasedCorsConfigurationSource ub = new UrlBasedCorsConfigurationSource(); ub.registerCorsConfiguration("/**", corsConfiguration); return new CorsFilter(ub); }}方式三:自定义过滤(web filter)的方式
@Componentpublic class CustomFilter implements Filter { @Override public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException { HttpServletResponse res = (HttpServletResponse) servletResponse; // 设置允许Cookie res.addHeader("Access-Control-Allow-Credentials", "true"); // 允许http://www.xxx.com域(自行设置,这里只做示例)发起跨域请求 res.addHeader("Access-Control-Allow-Origin", "*"); // 设置允许跨域请求的方法 res.addHeader("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); // 允许跨域请求包含content-type res.addHeader("Access-Control-Allow-Headers", "Content-Type,X-CAF-Authorization-Token,sessionToken,X-TOKEN"); if (((HttpServletRequest) servletRequest).getMethod().equals("OPTIONS")) { servletResponse.getWriter().println("ok"); return; } filterChain.doFilter(servletRequest, servletResponse); }}方式四:实现WebMvcConfigurer中addCorsMappings方法
import org.springframework.stereotype.Component;import org.springframework.web.servlet.config.annotation.CorsRegistry;import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;@Componentpublic class MyWebMvcConfigurer implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/**") // 匹配所有的路径 .allowCredentials(true) // 设置允许凭证 .allowedHeaders("*") // 设置请求头 .allowedMethods("GET", "POST", "PUT", "DELETE") // 设置允许的方式 .allowedOriginPatterns("*"); }}方法五:采用nginx做动态代理
到此,关于"springboot解决跨域的方式有哪些"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
方式
方法
浏览器
浏览
学习
限制
域名
不同
安全
更多
注解
策略
资源
问题
同源
帮助
实用
相同
重要
接下来
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技公司排名
新华互联网科技学校
互联网科技巨头监管
互联网科技财经
互联网科技社
科技互联网技术
没上市的科技互联网公司
深圳科技互联网
科技与互联网发展
广州凡科互联网科技
碳银互联网科技有限公司
温州喔噻互联网科技有限公司
互联网科技实习生岗位职责
互联网科技创新服务
企晟互联网信息科技有限公司
山东子淼互联网科技有限公司
伍佰万互联网科技怎么赚钱
智帮互联网科技公司最近动向
萌小萌互联网科技河南有限公司
中国科技和美国互联网
深圳九邦互联网科技有限公司
北京路客互联网科技有限公司
互联网公司 科技公司
喔噻互联网科技
千方科技属于互联网企业吗
互联网科技公司有风险吗
广州富喜互联网络科技
互联网科技年终奖
互联网科技包装股
求路客互联网科技电话