日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

SpringBoot設置CorsFilter過濾器解決跨域問題

作者:weixin_44953227 更新時間: 2022-04-09 編程語言

之前說過用攔截器去處理瀏覽器的OPTIONS請求來解決跨域問題,但是如果項目中配置了一些校驗請求的過濾器則會使其失效,因為過濾器比攔截器要早,所以有可能會使其失效。

攔截器解決跨域:http://www.shdianci.com/article/6501.html

核心代碼

這個過濾器的核心也是對OPTIONS請求進行了一個處理

import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.core.Ordered;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;

@Configuration
public class CorsConfig {
	private CorsConfiguration buildConfig() {  
        CorsConfiguration corsConfiguration = new CorsConfiguration();  
        corsConfiguration.addAllowedOrigin("*"); // 1允許任何域名使用
        corsConfiguration.addAllowedHeader("*"); // 2允許任何頭
        corsConfiguration.addAllowedMethod("*"); // 3允許任何方法(post、get等)
        corsConfiguration.setAllowCredentials(true); // 允許cookies跨域
        return corsConfiguration;  
    }  
  
    @Bean  
    public FilterRegistrationBean corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();  
        source.registerCorsConfiguration("/**", buildConfig());
        FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new CorsFilter(source));
        // 設置 Filter 的優先級為最高優先級(如果有多個過濾器這些過濾器會有一個先后順序的問題)
        filterRegistrationBean.setOrder(Ordered.HIGHEST_PRECEDENCE);
        return filterRegistrationBean;
    }  
}


原文鏈接:https://blog.csdn.net/weixin_44953227/article/details/121378084

欄目分類
最近更新