Spring Boot实现跨域访问实现代码
当前使用spring版本是4.3.9
importorg.springframework.stereotype.Component;
importjavax.servlet.*;
importjavax.servlet.http.HttpServletRequest;
importjavax.servlet.http.HttpServletResponse;
importjava.io.IOException;
@Component
publicclassCorsFilterimplementsFilter{
@Override
publicvoidinit(FilterConfigfilterConfig)throwsServletException{
}
@Override
publicvoiddoFilter(ServletRequestservletRequest,
ServletResponseservletResponse,
FilterChainfilterChain)throwsIOException,ServletException{
HttpServletRequestrequest=(HttpServletRequest)servletRequest;
HttpServletResponseresponse=(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
publicvoiddestroy(){
}
}
PS:springboot服务器端设置允许跨域访问
importorg.springframework.stereotype.Component;
importjavax.servlet.*;
importjavax.servlet.http.HttpServletResponse;
importjava.io.IOException;
/**
*
*跨域过滤器
*@authormeng
*@version
*@since2016年6月19日
*/
@Component
publicclassCorsFilterimplementsFilter{
finalstaticorg.slf4j.Loggerlogger=org.slf4j.LoggerFactory.getLogger(CorsFilter.class);
publicvoiddoFilter(ServletRequestreq,ServletResponseres,FilterChainchain)throwsIOException,ServletException{
HttpServletResponseresponse=(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);
}
publicvoidinit(FilterConfigfilterConfig){}
publicvoiddestroy(){}
}
2017-04-13更新:
第二种方法,在Appplication.java添加:
privateCorsConfigurationbuildConfig(){
CorsConfigurationcorsConfiguration=newCorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
returncorsConfiguration;
}
/**
*跨域过滤器
*@return
*/
@Bean
publicCorsFiltercorsFilter(){
UrlBasedCorsConfigurationSourcesource=newUrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**",buildConfig());//4
returnnewCorsFilter(source);
}
总结
以上所述是小编给大家介绍的SpringBoot实现跨域访问实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对毛票票网站的支持!