加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 19:50:05 所属栏目:Java 来源:网络整理
导读:当前使用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;@Componentpublic class C

当前使用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",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实现跨域访问实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对编程小技巧网站的支持!

您可能感兴趣的文章:

  • SpringBoot解决ajax跨域问题的方法
  • Spring boot 总结之跨域处理cors的方法
  • vue+springboot前后端分离实现单点登录跨域问题解决方法
  • Spring boot跨域设置实例详解
  • 浅谈spring-boot 允许接口跨域并实现拦截(CORS)
  • Spring Boot Web应用开发 CORS 跨域请求支持
  • spring boot配合前端实现跨域请求访问
  • Java Spring boot 2.0 跨域问题的解决

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读