前端專案線上如何做跨域
阿新 • • 發佈:2019-01-06
前端頁面被跨域限制了,說明不同源。 這個時候可以找一臺跟後臺介面同源的伺服器用 nginx 來做介面轉發。
以一個 vue 專案為例,在開發過程中,開發者可以主動去配合 dev 的 proxyTable, 本質上是本地起了一個 node 服務(express)來做轉發到 localhost, 因為跨域是會存在於瀏覽器。 而釋出到線上去之後,很可能由於 dev 環境下對每一個介面請求都攜帶了 /api 字首,這對我們很友好。
nginx 配置:
... location /api { # 配置一 proxy_pass http://abc.hahah.com/; # 配置二 proxy_pass http://abc.hahah.com; # 配置三 proxy_pass http://100.200.30.20; } ...
其中配置二和配置三,本質上是一樣的(使用ip和域名)ip 後面有沒有 / 是由區別的,有 / 表示轉發請求之後,/api 後面的內容才會被轉發,相當於 url 是被截斷的,正好我們需要這種形式,因為 /api 是我們新增的虛擬的 url 部分。
詳情可以參考 https://www.cnblogs.com/lemon-le/p/7800879.html 或者 《nginx高效能Web伺服器詳解》