1. 程式人生 > 其它 >spring gateway 跨域解決

spring gateway 跨域解決

問題描述:前端在請求後端介面時,存在了跨域問題。導致介面訪問不通
問題解決:解決跨域問題,可以從前端,和後端解決。現在時springboot 的解決方案
解決方案

public class AccessControlAllowOriginFilter implements Filter {

@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
HttpServletRequest request = (HttpServletRequest) req;
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-Credentials", "true");//必須要加
response.setHeader("Access-Control-Allow-Headers", "x-requested-with,Authorization,token, content-type");
if (request.getMethod().equals(HttpMethod.OPTIONS.name())){
response.setStatus(HttpStatus.NO_CONTENT.value());
return;
}
chain.doFilter(req, response);

}

}


@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("*");
corsConfiguration.addAllowedMethod("*");
corsConfiguration.setAllowCredentials(true);
return corsConfiguration;
}

@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
// 配置所有請求
source.registerCorsConfiguration("/**", buildConfig());
return new CorsFilter(source);
}
}