我們先來說什麼是跨域:
#同源策略限制了從同一個來源載入的文件或腳本如何與來自另一個來源的資源進行互動。這是一個用於隔離潛在惡意檔案的重要安全機制。通常不允許不同來源間的讀取操作。
接著說說什麼是同源:
如果兩個頁面的協議,連接埠(如果有指定)和網域都相同,則兩個頁面具有相同的源。
nginx解決跨域的原理分析:
例如:
前端server的網域為:fe.server.com
#後端服務的網域是:dev.server.com
現在我在fe.server.com對dev.server.com發起請求一定會出現跨域。
現在我們只需要啟動一個nginx伺服器,將server_name設定為fe.server.com,然後設定對應的location以攔截前端需要跨網域的請求,最後將請求代理回dev.server.com。如下面的配置:
server { listen 80; server_name fe.server.com; location / { proxy_pass dev.server.com; } }
這樣就可以完美地繞過瀏覽器的同源策略了。
fe.server.com訪問nginx的fe.server.com屬於同源訪問,而nginx對服務端轉送的請求不會觸發瀏覽器的同源策略。
推薦教學:nginx教學
#以上是nginx解決跨域的原理分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!