情景:前後端要想打通,需要解決跨域問題,記錄一下跨越公共類編寫.
代碼如下:
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.core.Ordered;
/**
* 處理AJAX請求跨域的問題
*/
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*");
corsConfiguration.addAllowedHeader("Origin");
corsConfiguration.addAllowedHeader("No-Cache");
corsConfiguration.addAllowedHeader("X-Requested-With");
corsConfiguration.addAllowedHeader("If-Modified-Since");
corsConfiguration.addAllowedHeader("Cache-Control");
corsConfiguration.addAllowedHeader("Pragma");
corsConfiguration.addAllowedHeader("Expires");
corsConfiguration.addAllowedHeader("Content-Type");
corsConfiguration.addAllowedHeader("X-E4M-With");
corsConfiguration.addAllowedHeader("X-User-Token");
corsConfiguration.addAllowedHeader("Authorization");
corsConfiguration.addAllowedMethod("GET");
corsConfiguration.addAllowedMethod("POST");
corsConfiguration.addAllowedMethod("HEAD");
corsConfiguration.addAllowedMethod("PUT");
corsConfiguration.addAllowedMethod("DELETE");
corsConfiguration.addAllowedMethod("OPTIONS");
corsConfiguration.setAllowCredentials(true);
return corsConfiguration;
}
@Bean
public FilterRegistrationBean corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig());
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
return bean;
}
}
ok 就到這裏啦