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