当前使用spring版本是4.3.9
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
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 服务器端设置允许跨域访问
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
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添加:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
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实现跨域访问实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!
原文链接:http://blog.csdn.net/lu_wei_wei/article/details/75620114