當前使用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