實戰系列 Spring Boot跨域解決方案

2021-10-08 23:41:23 字數 1141 閱讀 8064

在實際工作開發中經常會遇到跨域請求,這個時候就需要前後端來共同協調來解決問題,那麼在spring boot中怎麼解決跨域請求問題呢?下面就來看看

為了保證瀏覽器的安全,不同源位址的客戶端指令碼在沒有經過明確授權的情況下是不能讀寫彼此的資源的,這個就是叫做同源策略,同源策略是瀏覽器安全問題的基石。如果沒有這種限制,那麼瀏覽器可以毫無限制的去控制整個的網路體系。那麼什麼是跨域呢?

如果乙個請求位址裡面的協議、網域名稱和埠號都相同,就屬於同源。

例如,判斷下面的url是否和同源:

根據同源策略,非同源指令碼不可以操作其他源下面的物件,想要操作的話就需要進行跨域,在同源策略下,非同源的**之間不能傳送ajax請求。如果有這樣的需求,就需要進行跨域操作。

為了解決上述問題,w3c提出了跨院資源共享方案,也就是cors技術(cross-origin resource sharing)

cors 可以在不破壞現有規則的情況下,通過後端伺服器實現cors介面,從而實現跨域通訊。cors請求分為兩類:簡單請求和非簡單請求,分別對跨域通訊提供了支援操作。

在cors技術出現之前,在http請求頭中不能包含任何的自定義字段,而且http請求資訊也不能操作如下的一些

根據對簡單請求的的分析,cors的策略是在請求時在請求頭中增加乙個origin欄位,伺服器收到請求後,根據該欄位判斷是否允許該請求訪問。

處理access-control-allow-origin欄位,還有其他的字段可以描述cors返回結果

對於非簡單請求的跨源請求,瀏覽器會在真實請求發出前增加一次option請求,稱為預檢請求。在預檢請求將真實請求的資訊,包括請求方法、自定義頭欄位、源資訊新增到http頭資訊欄位中,詢問伺服器是否允許這樣的操作。

伺服器收到請求時,需要對origin、access-control-request-method、access-control-request-headers 進行驗證,驗證通過後,會在返回http頭資訊中新增如下的的內容

cors 的**實現比較簡單,主要要理解cors實現跨域的原理和方式。具體配置如下。

@configuration

public

class

corsconfig

implements

webmvcconfigurer

}

Spring Boot功能實戰

新增了spring boot基礎依賴後,如要使用web mvc功能,只需要新增如下啟動器即可,spring boot會自動裝配web功能。org.springframework.bootgroupid spring boot starter webartifactid dependency depe...

springboot跨域配置

1.springboot它的好處就是它強大的自動配置,使我們能夠快速的搭建乙個專案。而springboot主要的設計目的是為微服務而誕生的。在前後端分離架構中,前端請求後端介面必然存在跨域,後端只需要提供服務即可。2.springboot配置跨域 編寫cors配置類 import org.sprin...

spring boot跨域問題

方式一 直接寫乙個 配置類 其他 不變 configuration public class orginconfig bean public corsfilter corsfilter 方式二 直接寫乙個 配置類 configuration public class weboriginconfig ...