我們的乙個專案採用動靜分離的部署方式,服務介面在自己的伺服器上,靜態資源儲存在oss,通過cdn訪問。不過這樣有時會有跨域問題。本文總結解決的辦法
原本的做法,服務介面部署在自己的伺服器上,通過網域名稱api.***.com訪問,不走cdn
靜態檔案,包括html,css,js,等,部署在oss上,通過網域名稱s.***.com訪問,經過cdn加速
這種架構在效能上表現很不錯,但是服務介面是通過ajax呼叫的,通過設定access-control-allow-origin允許跨域請求,但是這需要跨域
而實踐發現,在某些移動端的瀏覽器裡,跨域訪問失敗。比如三星s3,某些vivo手機等。因為這涉及到安卓版本,手機型號,瀏覽器版本等,很難徹底解決
所以最後就考慮能否通過改進部署方式,來徹底避免跨域請求
希望實現2個目的:
1、靜態資源和服務介面需要在同乙個網域名稱下
2、網域名稱要通過cdn加速,保證效能
現在的做法,是把靜態資源和服務介面都部署到自己的伺服器上,把自己伺服器作為cdn的源站
然後在cdn上配置規則,對於/svc開頭的url,不設定快取(即確保這種請求回源)即可
跨域避免 option 請求
悟空h5專題採用的是前後端分離方案,伺服器網域名稱和專題網域名稱不一致,會受到瀏覽器同源策略影響。我們發現資料主介面會發起兩次,其中第乙個請求為預檢請求。用於獲取目的資源所支援的通訊選項。客戶端可以對特定的 url 使用 options 方法,也可以對整站 通過將 url 設定為 使用該方法。在 c...
加上cdn後字型跨域
font face是css3中的乙個特性,可以把自己定義的web字型嵌入到網頁中,隨著 font face,越來越多的網頁採用字型圖示作為網頁中的小圖形。比如bootstrap就採用了glyphicons 字型圖示 在bootstrap的架構下可以免費使用glyphicons的250多種圖示字型。另...
Cookie 跨域解決方案(IFrame跨域)
iframe跨域思路 假設有a.haorooms.com text.html和b.haorooms.com text.html兩個頁面,通過a.haorooms.com text.html頁面去修改b.haorooms.com text.html頁面的本地資料 在a.haorooms.com tex...