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

 更新时间:2017年07月21日 11:05:09   作者:米四度  
本文通过实例代码给大家介绍了Spring Boot实现跨域访问的知识,然后在文中给大家介绍了spring boot 服务器端设置允许跨域访问 的方法,感兴趣的朋友一起看看吧

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

相关文章

  • SpringBoot使用mybatis-plus分页查询无效的问题解决

    SpringBoot使用mybatis-plus分页查询无效的问题解决

    MyBatis-Plus提供了很多便捷的功能,包括分页查询,本文主要介绍了SpringBoot使用mybatis-plus分页查询无效的问题解决,具有一定的参考价值,感兴趣的可以了解一下
    2023-12-12
  • Java字符转码之UTF-8互转GBK具体实现

    Java字符转码之UTF-8互转GBK具体实现

    在Java程序中字符串默认的编码方式是UTF-16编码,因此需要将GBK编码转换为UTF-8编码,主要是为了避免出现乱码的情况,这篇文章主要给大家介绍了关于Java字符转码之UTF-8互转GBK具体实现的相关资料,需要的朋友可以参考下
    2023-11-11
  • 详解Spring Boot自动装配的方法步骤

    详解Spring Boot自动装配的方法步骤

    这篇文章主要介绍了详解Spring Boot自动装配的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • 详解Java 类的加载机制

    详解Java 类的加载机制

    这篇文章主要介绍了Java 类的加载机制,帮助大家更好的理解和学习Java,感兴趣的朋友可以了解下
    2020-08-08
  • 20秒教你学会java List函数排序操作示例

    20秒教你学会java List函数排序操作示例

    这篇文章主要为大家介绍了20秒教你学会List函数排序操作示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java与WebUploader相结合实现文件上传功能(实例代码)

    Java与WebUploader相结合实现文件上传功能(实例代码)

    这篇文章主要介绍了Java结合WebUploader实现文件上传功能,代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • 基于Java 数组内存分配的相关问题

    基于Java 数组内存分配的相关问题

    本篇文章是对Java中数组内存分配进行了详细的分析介绍,需要的朋友参考下
    2013-05-05
  • Java并行处理的实现

    Java并行处理的实现

    并行计算一般是指许多指令得以同时进行的计算模式。本文主要介绍了Java并行处理的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-07-07
  • java接口Array介绍

    java接口Array介绍

    这篇文章主要介绍了java接口Array的相关资料,需要的朋友可以参考下
    2014-10-10
  • RestTemplate集成Ribbbon的示例代码

    RestTemplate集成Ribbbon的示例代码

    这篇文章主要介绍了RestTemplate集成Ribbbon的示例代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08

最新评论