-
1 # 程式猿開發日記
-
2 # 大劉哥聊技術
一、什麼是跨域請求?
跨域請求,就是說瀏覽器在執行指令碼檔案的ajax請求時,指令碼檔案所在的服務地址和請求的服務地址不一樣。說白了就是ip、網路協議、埠都一樣的時候,就是同一個域,否則就是跨域。這是由於Netscape提出一個著名的安全策略——同源策略造成的,這是瀏覽器對JavaScript施加的安全限制。是防止網路的指令碼惡意攻擊伺服器的一種措施。
二、SpringBoot工程如何解決跨域問題?那麼如何在SpringBoot中處理跨域問題呢?方法有很多,這裡著重講一種——利用@Configuration配置跨域。
程式碼實現如下:
/**
* 實現基本的跨域請求
*/
@Configuration
public class CorsConfig {
private CorsConfiguration buildConfig() {
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 允許任何域名使用
corsConfiguration.addAllowedHeader("*"); // 允許任何頭
corsConfiguration.addAllowedMethod("*"); // 允許任何方法(post、get等)
return corsConfiguration;
}
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", buildConfig()); // 對介面配置跨域設定
return new CorsFilter(source);
}
}
回覆列表
一般有三種方式,第一種最快最簡單的就是使用註解,第二種是使用Filter,第三種是是配置使用CorsFilter和CorsConfiguration方法。
註解在controller層,增加註解@CrossOrigin,這種方式要求我們每一個controller都需要定義該註解
Filter過濾器使用response,透過設定響應體完成跨域