跨域問題(CORS)
CORS全稱Cross-Origin Resource Sharing,意爲跨域資源共享。當一個資源去訪問另一個不同域名或者同域名不同端口的資源時,就會發出跨域請求。如果此時另一個資源不允許其進行跨域資源訪問,那麼訪問的那個資源就會遇到跨域問題。
解決問題
覆蓋默認的CorsFilter,添加GlobalCorsConfig配置文件來允許跨域訪問。
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* 全局跨域配置
*/
@Configuration
public class GlobalCorsConfig {
/**
* 允許跨域調用的過濾器
*/
@Bean
public CorsFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
//允許所有域名進行跨域調用
config.addAllowedOrigin("*");
//允許跨越發送cookie
config.setAllowCredentials(true);
//放行全部原始頭信息
config.addAllowedHeader("*");
//允許所有請求方法跨域調用
config.addAllowedMethod("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}
}