Spring Boot实现跨域访问实现代码

发布时间 - 2026-01-11 02:26:53    点击率:

当前使用spring版本是4.3.9

import org.springframework.stereotype.Component;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@Component
public class CorsFilter implements Filter {
  @Override
  public void init(FilterConfig filterConfig) throws ServletException {
  }
  @Override
  public void doFilter(ServletRequest servletRequest,
             ServletResponse servletResponse,
             FilterChain filterChain) throws IOException, ServletException {
    HttpServletRequest request = (HttpServletRequest) servletRequest;
    HttpServletResponse response = (HttpServletResponse) servletResponse;
    response.setHeader("Access-Control-Allow-Origin", request.getHeader("origin"));
//    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,Cache-Control,Pragma,Content-Type,Token");
    response.setHeader("Access-Control-Allow-Credentials","true");//是否允许请求带有验证信息
    filterChain.doFilter(servletRequest, servletResponse);
  }
  @Override
  public void destroy() {
  }
}

PS: spring boot 服务器端设置允许跨域访问

 import org.springframework.stereotype.Component; 
import javax.servlet.*; 
import javax.servlet.http.HttpServletResponse; 
import java.io.IOException; 
/** 
 * 
 * 跨域过滤器 
 * @author meng 
 * @version 
 * @since 2016年6月19日 
 */ 
@Component 
public class CorsFilter implements Filter { 
  final static org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(CorsFilter.class); 
  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"); 
    System.out.println("*********************************过滤器被使用**************************"); 
    chain.doFilter(req, res); 
  } 
  public void init(FilterConfig filterConfig) {} 
  public void destroy() {} 
} 

2017-04-13更新:

第二种方法,在Appplication.java添加:

private CorsConfiguration buildConfig() { 
    CorsConfiguration corsConfiguration = new CorsConfiguration(); 
    corsConfiguration.addAllowedOrigin("*"); 
    corsConfiguration.addAllowedHeader("*"); 
    corsConfiguration.addAllowedMethod("*"); 
    return corsConfiguration; 
  } 
  /** 
   * 跨域过滤器 
   * @return 
   */ 
  @Bean 
  public CorsFilter corsFilter() { 
    UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); 
    source.registerCorsConfiguration("/**", buildConfig()); // 4 
    return new CorsFilter(source); 
  } 

总结

以上所述是小编给大家介绍的Spring Boot实现跨域访问实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# spring  # boot  # 跨域访问  # 允许跨域  # springboot  # 跨域  # SpringBoot解决ajax跨域问题的方法  # Spring boot 总结之跨域处理cors的方法  # vue+springboot前后端分离实现单点登录跨域问题解决方法  # Spring boot跨域设置实例详解  # 浅谈spring-boot 允许接口跨域并实现拦截(CORS)  # Spring Boot Web应用开发 CORS 跨域请求支持  # spring boot配合前端实现跨域请求访问  # Java Spring boot 2.0 跨域问题的解决  # 小编  # 在此  # 给大家  # 种方法  # 所述  # 给我留言  # 感谢大家  # 疑问请  # 有任何  # FilterChain  # servletResponse 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何获取免费开源的自助建站系统源码?  高性能网站服务器部署指南:稳定运行与安全配置优化方案  网站制作报价单模板图片,小松挖机官方网站报价?  Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置  php增删改查怎么学_零基础入门php数据库操作必知基础【教程】  如何快速搭建FTP站点实现文件共享?  javascript基本数据类型及类型检测常用方法小结  b2c电商网站制作流程,b2c水平综合的电商平台?  高端云建站费用究竟需要多少预算?  如何在局域网内绑定自建网站域名?  EditPlus中的正则表达式 实战(4)  Python正则表达式进阶教程_复杂匹配与分组替换解析  jQuery validate插件功能与用法详解  PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  如何快速查询网址的建站时间与历史轨迹?  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  浅谈Javascript中的Label语句  如何在 React 中条件性地遍历数组并渲染元素  javascript中的数组方法有哪些_如何利用数组方法简化数据处理  Laravel如何使用Telescope进行调试?(安装和使用教程)  Laravel如何实现用户角色和权限系统_Laravel角色权限管理机制  Laravel如何使用Contracts(契约)进行编程_Laravel契约接口与依赖反转  头像制作网站在线观看,除了站酷,还有哪些比较好的设计网站?  Python并发异常传播_错误处理解析【教程】  Win11应用商店下载慢怎么办 Win11更改DNS提速下载【修复】  如何在宝塔面板中创建新站点?  教学论文网站制作软件有哪些,写论文用什么软件 ?  如何快速重置建站主机并恢复默认配置?  Laravel如何处理和验证JSON类型的数据库字段  Laravel怎么进行数据库回滚_Laravel Migration数据库版本控制与回滚操作  WEB开发之注册页面验证码倒计时代码的实现  如何为不同团队 ID 动态生成多个“认领值班”按钮  奇安信“盘古石”团队突破 iOS 26.1 提权  Win11怎么修改DNS服务器 Win11设置DNS加速网络【指南】  微信小程序 配置文件详细介绍  Linux后台任务运行方法_nohup与&使用技巧【技巧】  如何在七牛云存储上搭建网站并设置自定义域名?  PHP的CURL方法curl_setopt()函数案例介绍(抓取网页,POST数据)  Win11搜索栏无法输入_解决Win11开始菜单搜索没反应问题【技巧】  家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?  音乐网站服务器如何优化API响应速度?  如何在万网自助建站平台快速创建网站?  手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?  Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】  美食网站链接制作教程视频,哪个教做美食的网站比较专业点?  绝密ChatGPT指令:手把手教你生成HR无法拒绝的求职信  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  教你用AI润色文章,让你的文字表达更专业  合肥制作网站的公司有哪些,合肥聚美网络科技有限公司介绍?