最近在用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); } }