1. 程式人生 > >使用Spring Boot的跨源CORS設定

使用Spring Boot的跨源CORS設定

1. 問題

在學習Angular時,使用以下程式碼發起POST請求,

this.http.post("http://localhost:8899/login", body, {headers: headers})

會出現以下錯誤提示。

已攔截跨源請求:同源策略禁止讀取位於 http://localhost:8899/login 的遠端資源。(原因:CORS 頭缺少 'Access-Control-Allow-Origin')。

原因是使用得RESTful微服務沒有配置跨源CORS設定。

2. 解決

使用Spring Boot的@Configuration和@Bean追加一個基於Filter的CORS配置。使用到的類有:CorsConfiguration和UrlBasedCorsConfigurationSource。

程式碼如下:

@Configuration
public class SecurityCorsConfiguration {
	
	@Bean
	public FilterRegistrationBean corsFilter() {
		UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
		CorsConfiguration config = new CorsConfiguration();
		config.setAllowCredentials(true);
		config.addAllowedOrigin("http://localhost:4200");
		config.addAllowedHeader(CorsConfiguration.ALL);
		config.addAllowedMethod(CorsConfiguration.ALL);
		source.registerCorsConfiguration("/**", config);
		FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
		bean.setOrder(Ordered.HIGHEST_PRECEDENCE);
		return bean;
	}

}
 

相關推薦

使用Spring BootCORS設定

1. 問題 在學習Angular時,使用以下程式碼發起POST請求, this.http.post("http://localhost:8899/login", body, {headers: headers}) 會出現以下錯誤提示。 已攔截跨源請求:同源策略禁止讀

Spring-Boot v2.0.5 設定域訪問

在@Configuration註解下的類中新增如下配置 @Bean public WebMvcConfigurer corsConfigurer() { return new WebMvcConfig

spring boot 中通過CORS實現

一、跨域問題出現的原因    出現跨域問題的原因是同源策略。   同源策略   主要是三同:同協議、同域名、同埠,   同源策略目的 保證使用者資訊保安,防止惡意網站竊取資料。同源策略是必須的,否則cookie可以共享。   同源策略的限制範圍 cookie、localstorage、indexdb

spring boot 域問題,很細節

spring boot 跨域問題(CROS): 法1、 @Configuration public class CustomCorsConfiguration extend WebMvcConfigurerAdapter{     @Override  &nb

spring boot 域配置

新建如下JAVA類: import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springf

Spring Boot快取實戰 Redis 設定有效時間和自動重新整理快取,時間支援在配置檔案中配置

問題描述 Spring Cache提供的@Cacheable註解不支援配置過期時間,還有快取的自動重新整理。 我們可以通過配置CacheManneg來配置預設的過期時間和針對每個快取容器(value)單獨配置過期時間,但是總是感覺不太靈活。下面是一個示例: @Bean

spring-boot 利用 actuator 動態設定 logging 的日誌級別

引子 已經上線的服務通常情況下都會關閉日誌列印功能。但是一但進行排錯的時候,又必須開啟日誌輸出,而修改日誌級別的方式有多種。這裡只說明個人認為最優的方式 依賴 spring-boot、spring-boot-actuator 方式 定義一個

spring-boot-devtools熱部署設定

引入pom.xml<dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-devtools</art

spring-boot idea開發工具設定

本節介紹一些 Ieda-2017.2.x使用及基本配置,部分資料來源網友提供。具體是那個不太記得,只是做了記錄的一些配置過程。1.1.  idea破解專業版的intellij可以免費試用30天。為了以後開發方便,經過網路查詢破解方法如下:點選Activate,然後就就可以正常

Spring boot 專案使用mvn設定配置檔案動態引數

在pom.xml中配置profiles,對不同環境配置不同變數的值 <profiles> <profile> <id>

spring boot配置定時任務設定

每天凌晨2點  0 0 2 * * ?和每天隔一小時 0 * */1 * * ?例1:每隔5秒執行一次:*/5 * * * * ?例2:每隔5分執行一次:0 */5 * * * ?在26分、29分、33分執行一次:0 26,29,33 * * * ?例3:每天半夜12點30分

spring boot+ Intellj idea devtool 設定熱部署

兩步:  一、 1、CTRL + SHIFT + A --> 查詢make project automatically --> 選中 2、CTRL + SHIFT + A --> 查詢Registry --> 找到並勾選compiler.automa

處理Spring boot 域問題-(轉)

ajax是一種建立互動式網頁應用的網頁開發技術,是一種用於建立快速動態網頁的技術,通過在後臺與伺服器進行少量資料交換。而ajax的跨域問題則是請求了其他專案的介面地址,當協議、子域名、主域名、埠號中任意一個不一樣的時候,都算不同的域。不同域之間的相互請求,就叫跨

spring boot域問題--待解決

前後端分離的系統通常會出現跨域問題,最簡單的辦法是在每個controller上面添加註解: @CrossOrigin(origins = "*") 但是,如果要對exception統一進行處理,使用@ControllerAdvice註解一個全域性攔截器後,無法像contr

Spring Boot快取實戰 Redis 設定有效時間和自動重新整理快取-2

問題 上一篇Spring Boot Cache + redis 設定有效時間和自動重新整理快取,時間支援在配置檔案中配置,說了一

Spring Boot Web應用開發 CORS 域請求設定 Invalid CORS request

使用SpringBoot Web開發程式時,前後端分離時,經常遇到跨域問題,特別是很多情況下Firefox瀏覽器沒有問題,而chrome瀏覽器有問題,僅僅從瀏覽器的web控制檯很難發現有效的錯誤或者告警資訊,因此在開發程式很有必要在開發階段就考慮到並配置好跨域。 SpringBoot

spring boot Cors

-a control app ppi map ring als cor spring 在訪問web工程的時候,經常會報一些跨域的錯誤:CORS header ‘Access-Control-Allow-Origin’ missingspring boot中的cors設定方式

header頭設定解決 “已攔截請求:同源策略禁止讀取位於 http://47.104.128.87/back/test/test 的遠端資源。(原因:CORS 頭缺少 'Access-Control-Allow-Origin')。”

跨域請求錯誤提示如下圖: 解決方法在請求的php頁面新增header頭: 程式碼如下: public function test() { //支援全域名訪問,不安全,部署後需要固定限制為客戶端網址 header('Access-Control-Allow-Origin:*'

spring boot 設定域規則

@Configuration public class CrossOriginConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) {

go、spring boot、vert.x 用CORS解決

go gin 使用github.com/gin-contrib/cors package main import "github.com/gin-gonic/gin" import "github.com/gin-contrib/cors" func main() {