SpringBoot 跨域問題

最近在用vue+element.ui作項目,後端是springboot,其中有用到element.ui的upload組件。vue

在設置好upload的action後,總進行預請求也就是http的options,結果返回403錯誤,也就是說springboot後端接口不接收這個請求。也知道是跨域的問題,但是不清楚element的機制(在這方面是「小白」),並且本身在後端的攔截器裏面設置了repsonse的header、、、、、、web

後來仍是在springboot跨域上尋求突破,結果還真是。spring

解決方案就是在springboot裏添加配置項,代碼以下:後端

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 CorsConfig {
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*"); // 1
        corsConfiguration.addAllowedHeader("*"); // 2
        corsConfiguration.addAllowedMethod("*"); // 3
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig()); // 4
        return new CorsFilter(source);
    }
}
相關文章
相關標籤/搜索