前端跨域解決方案

2021-09-10 14:32:36 字數 1181 閱讀 2781

跨域是指乙個域下的文件或指令碼試圖去請求另乙個域下的資源,這裡跨域是廣義的。其實我們通常所說的跨域是狹義的,是由瀏覽器同源策略限制的一類請求場景。

什麼是同源策略?

同源策略/sop(same origin policy)是一種約定,由netscape公司2023年引入瀏覽器,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,瀏覽器很容易受到xss、csfr等攻擊。所謂同源是指」協議+網域名稱+埠」三者相同,即便兩個不同的網域名稱指向同乙個ip位址,也非同源。

常見跨域場景

url說明是否允許通訊

與 與

同一網域名稱,不同檔案或路徑

允許 與

同一網域名稱,不同埠

不允許 與

同一網域名稱,不同協議

不允許 與

網域名稱和網域名稱對應相同ip

不允許 與 與

主域相同,子域不同

不允許 與

不同網域名稱

不允許通過jsonp跨域

//原生實現//jquery實現

$.ajax(

});//vue實現

}).then((res) => )

document.domain + iframe跨域

location.hash + iframe跨域

實現原理: a欲與b跨域相互通訊,通過中間頁c來實現。 三個頁面,不同域之間利用iframe的location.hash傳值,相同域之間直接js訪問來通訊。

具體實現:a域:a.html -> b域:b.html -> a域:c.html,a與b不同域只能通過hash值單向通訊,b與c也不同域也只能單向通訊,但c與a同域,所以c可通過parent.parent訪問a頁面所有物件。

window.name + iframe跨域

window.name屬性的獨特之處:name值在不同的頁面(甚至不同網域名稱)載入後依舊存在,並且可以支援非常長的 name 值(2mb)。

postmessage跨域

跨域資源共享(cors)

nginx**跨域

nodejs中介軟體**跨域

websocket協議跨域

前端常見跨域解決方案

前端常見跨域解決方案 全 跨域問題 平時被問到最多的問題還是關於跨域的,其實跨域問題真的不是乙個很難解決的問題。這裡我來簡單總結一下我推薦的幾種跨域解決方案。我最推薦的也是我工作中在使用的方式就是 cors 全稱為 cross origin resource sharing 跨域資源共享 這種方案對...

vue前端跨域解決方案

為什麼會出現跨域 瀏覽器訪問非同源的 時,會被限制訪問,出現跨域問題.常見的跨域有三種 cors跨域 後端開啟 全稱 跨域資源共享 原理 它允許瀏覽器向跨源伺服器,發出xmlhttprequest請求,從而克服了ajax只能同源使用的限制 vue 伺服器proxy跨域 通過請求本地的伺服器,然後本地...

前端跨域請求及解決方案

跨域請求是當前發起請求的域 協議 網域名稱 埠 與該請求指向的資源所在的域不一致,常見的解決方式有 jsonp 跨域資源共享cors 反向 等 1 jsonp 2 跨域資源共享cors cross origin resource sharing 3 反向 最常用 在前端開發編碼過程中,常見的html...