我們先來說說什么是跨域:
同源策略限制了從同一個源加載的文檔或腳本如何與來自另一個源的資源進行交互。這是一個用于隔離潛在惡意文件的重要安全機制。通常不允許不同源間的讀操作。
接著來說說什么是同源:
如果兩個頁面的協議,端口(如果有指定)和域名都相同,則兩個頁面具有相同的源。
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教程
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦