SpringBoot 十三 CORS方式實現跨域

2021-09-07 20:38:50 字數 1738 閱讀 2190

什麼是跨域?瀏覽器從乙個網域名稱的網頁去請求另乙個網域名稱的資源時,網域名稱、埠、協議任一不同,都是跨域 。 跨域資源訪問是經常會遇到的場景,當乙個資源從與該資源本身所在的伺服器不同的域或埠請求乙個資源時,資源便會發起乙個跨域 http 請求。出於安全考慮,瀏覽器會限制從指令碼內發起的跨域http請求。

跨域的方式有很多種, 今天主要介紹cors(網路通訊技術),全稱cross-origin resource sharing  ,是一種允許當前域(domain)的資源(比如html/js/web service)被其他域(domain)的指令碼請求訪問的機制,通常由於同域安全策略(the same-origin security policy)瀏覽器會禁止這種跨域請求。

由於cors方式實現跨域需要服務端配合設定header,在springboot中只需要新增以下配置即可,或者在需要支援跨域的方法中直接對response設定header,以下三種方式效果相同。

第一種:

@configuration

public

class webmvcconfig extends

webmvcconfigureradapter

///*

@override

}*/}

第二種:

第三種:

1. 原生ajax呼叫示例:

支援跨域傳送cookies

xhr.send();

2. jquery呼叫示例:

$.ajax(,

crossdomain:

true

, success: (res) =>

});

3. fetch方式

fetch('', 

//注意這裡的設定,支援跨域傳送cookies

).then(function

(res) );

} else

}, function

(e) );

值得注意的一點是:伺服器端 access-control-allow-credentials = true時,引數access-control-allow-origin 的值不能為 '*',必須為具體的origin。

另外還需要注意:試了一下,cookie的域必須是兩個子域的頂級域,才能實現跨域傳輸。即如果**a是:a.test.cn,**b是:b.test.com,那麼無論如何都不能實現a攜帶會話cookie傳送跨域請求到**b上。

三十三 Springboot整合 Actuator

一 actuator簡介 參見spring boot 2.0 中使用 actuator 對actuator endpoints簡單進行歸納分類 監控類 端點資訊 應用資訊 外部化配置資訊 指標資訊 健康檢查 bean管理 web url 對映管理 web url 跟蹤 管理類 外部化配置 日誌配置 ...

SpringBoot系列十三 錯誤處理

一 springboot預設的錯誤處理機制 預設效果 1 瀏覽器,返回乙個預設的錯誤頁面。2 如果是其他客戶端,預設響應乙個json資料。3 原理 可以參照errormvcautoconfiguration 錯誤處理的自動配置。給容器中新增了以下元件 1 defaulterrorattributes...

WAR包版本GeoServer設定CORS跨域

當前臺頁面請求wms可能會遇到瀏覽器以下提示 瀏覽器控制台 已阻止跨源請求 同源策略禁止讀取位於 的遠端資源。原因 cors 頭缺少 access control allow origin 原文大概這樣 網上找到的大部分cors配置都是針對geoserver安裝版的 像 基於cors的geoserv...