服務端以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);
}
}