1. 程式人生 > 其它 >「五」具有快取功能的反向代理服務

「五」具有快取功能的反向代理服務

什麼是跨域

為什麼會出現跨域?

出於瀏覽器的同源策略限制。

什麼是同源策略?

是一種約定,它是瀏覽器最核心也最基本的安全功能,同源策略會阻止一個域的javascript指令碼和另外一個域的內容進行互動。所謂同源(即指在同一個域)就是兩個頁面具有相同的協議(protocol),主機(host)和埠號(port)。

什麼是跨域?

當一個請求url的協議、域名、埠三者之間任意一個與當前頁面url不同即為跨域。

解決方法:

  • 設定document.domain解決無法讀取非同源網頁的 Cookie問題
  • 跨文件通訊 API:window.postMessage()
  • JSONP 是伺服器與客戶端跨源通訊的常用方法。最大特點就是簡單適用,相容性好(相容低版本IE),缺點是隻支援get請求,不支援post請求。核心思想:網頁通過新增一個<script>
    元素,向伺服器請求 JSON 資料,伺服器收到請求後,將資料放在一個指定名字的回撥函式的引數位置傳回來。
  • CORS 是跨域資源分享(Cross-Origin Resource Sharing)的縮寫。它是 W3C 標準,屬於跨源 AJAX 請求的根本解決方法。
  • webpack本地代理
  • websocket
  • Nginx反向代理
    使用 nginx 反向代理實現跨域,是最簡單的跨域方式。只需要修改 nginx 的配置即可解決跨域問題,支援所有瀏覽器,支援 session,不需要修改任何程式碼,並且不會影響伺服器效能。