首页 > 开发 > Java > 正文

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

2024-07-13 10:10:08
字体:
来源:转载
供稿:网友

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


注:相关教程知识阅读请移步到JAVA教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表