關於使用代理解決跨域問題的原理


 

為了安全着想瀏覽器會設置同源安全策略
即不在同一個域名下的資源就不能夠互相訪問
要解決這個問題方法有很多 ,但大致分為兩類:
1 是服務端進行設置默認允許某些域名跨域訪問
2 從客戶端入手想辦法繞開同源安全策略
主要介紹從客戶端入手,用代理的方式實現跨域訪問的原理
舉個栗子:
用node起了一個localhost:8080的服務器
那么在這個服務器下訪問的網頁也就是默認在8080這個域下面
假設服務端所在的域是www.njc.com
這樣通過ajax發送請求的話
由客戶端直接傳過去的就是一個域名為localhost:8080的請求
而服務端所在的域是 www.nj1c.com
域名不同 跨域請求失敗
把栗子放下;
到這里可以看出跨不跨域實際上是由客戶端(瀏覽器)來告訴服務器的
這也就為實現跨域訪問提供了實現的基礎
通過一些方法設置代理,在請求發送(接收)之前加入中間層,
將不同的域名轉換成相同的
就解決了跨域的問題
依舊以上面的栗子:
客戶端發送請求時
不直接到服務器
而是先到代理的中間層
在這里將 localhost:8080 的這個域名裝換為 www.nj1c.com,
再將請求發送到服務器
這樣在服務器端收到的請求就是使用的www.nj1c.com域名
同理,當服務器返回數據的時候,也是先到代理的中間層
將 www.nj1c.com 轉換成 localhost:8080;
這樣在客戶端也是在相同域名下訪問的了————————————————版權聲明:本文為CSDN博主「裂痕中的陽光.ゝ」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。原文鏈接:https://blog.csdn.net/weixin_43260760/article/details/84568440


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM