【SpringBoot學習筆記】SpringBoot_02_vue和SpringBoot1.5的跨域請求

服務端以SpringBoot1.5框架爲核心,除提供轉發到首頁外,只提供RESTful接口,通過Json格式消息進行交互;

前端以Vue全家桶爲核心,實現SPA單頁面應用,以ajax方式與服務端進行通信;

前後端分離開發,因此會建兩個項目,通過npm run build 打包項目(複製進)項目進行整合

 

關於跨域在實際開發過程中,發現跨域問題並不是那麼好解決的,因爲Springboot安全控制框架使用了Securtiy,它的身份認證基於 JSESSIONID,而axios框架默認是不發送cookie的,因此需要在axios配置中添加

 

axios.defaults.withCredentials = true

 

 

然而因爲跨域策略問題,Springboot後端跨域設置也要修改

 

 

@Configuration
public class CorsConfig {
    /**
     允許任何域名使用
     允許任何頭
     允許任何方法(post、get等)
     */
    private CorsConfiguration buildConfig() {
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        corsConfiguration.addAllowedOrigin("*");
        corsConfiguration.addAllowedHeader("*");
        corsConfiguration.addAllowedMethod("*");
        // allowCredential 需設置爲true
        corsConfiguration.setAllowCredentials(true);
        return corsConfiguration;
    }

    @Bean
    public CorsFilter corsFilter() {
        UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
        source.registerCorsConfiguration("/**", buildConfig());
        return new CorsFilter(source);
    }
}

 

 

 

 

 


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章