跨域解決方案

2021-09-28 10:32:07 字數 948 閱讀 1943

瀏覽器端的同源策略

如果兩個頁面的協議,埠和網域名稱中的其中任意乙個不相同, 它們就是不同源的, 瀏覽器會限制他們之間的資源互動;

跨域

跨域的安全限制只針對瀏覽器, 伺服器是沒有跨域的安全限制的;

原理:由於伺服器沒有跨域限制,所以在需要跨域訪問時,在中間設定乙個中間層

舉例:

192.168.10.1:8080 是呼叫方

192.168.10.2:8080 是被呼叫方

它倆是不同域的,但我們可以在 nginx 或 apache 上進行配置**:將被呼叫方 192.168.10.2:8080 射成別的路徑。

}}比如上面,nginx 執行在 192.168.10.1 上,nginx 將 192.168.10.2:8080 埠的對映成了 test ,當呼叫方訪問 test 路徑時,這樣的方法在外部看起來就不像是跨域了,像是訪問本地(但實際訪問別的域(

這種方式不需要前端做任何配置,只要伺服器進行配置,唯一需要注意的是,需要攜帶cookie資訊時,需要將withcredentials設定為true即可

cors是通過目標伺服器返回的header設定來控制是否可跨域。其中重要的乙個引數即 access-control-allow-origin(訪問控制允許**),通過這個引數指定可以接收的請求資源

cors工作過程原理:

就是動態建立標籤,然後利用的src 不受同源策略約束來跨域獲取資料。

存在問題:

跨域解決方案

因為瀏覽器出於安全考慮,有同源策略。也就是說,如果協議 網域名稱或者埠有乙個不同就是跨域,ajax 請求會失敗。那麼是出於什麼安全考慮才會引入這種機制呢?其實主要是用來防止 csrf 攻擊的。簡單點說,csrf 攻擊是利用使用者的登入態發起惡意請求。也就是說,沒有同源策略的情況下,a 可以被任意其他...

跨域解決方案

後端解決跨域的主要方式是,通過在響應頭中設定相關的跨域字段,用於告訴瀏覽器允許跨域請求資源。在前後端分離的場景中,登入頁面存在後端伺服器中,當登入成功後,需要發起跳轉請求,跳轉至前端首頁的情況。nginx響應頭相關配置 可指定匹配路徑,並不一定需要在location 下配置 在前後端分離的場景中,由...

跨域解決方案

跨域解決方案有哪些?方案一原理 動態建立乙個script標籤。利用script標籤的src屬性不受同源策略限制。因為所有的src屬性和href屬性都不受同源策略限制。可以請求第三方伺服器資料內容 步驟1 去建立乙個script標籤 步驟2 介面引數,必須要帶乙個自定義函式名 要不然後台無法返回資料 ...