內網如何實現跨域

2021-10-10 10:20:25 字數 891 閱讀 8906

1.jsonp跨域		

利用了 script 不受同源策略的限制

缺點:只能 get 方式,易受到 xss攻擊

2.cors跨域

當使用xmlhttprequest傳送請求時,如果瀏覽器發現違反了同源策略就會自動加上乙個請求頭 origin;

後端在接受到請求後確定響應後會在後端在接受到請求後確定響應後會在 response headers 中加入乙個屬性 access-control-allow-origin;

瀏覽器判斷響應中的 access-control-allow-origin 值是否和當前的位址相同,匹配成功後才繼續響應處理,否則報錯

缺點:忽略 cookie,瀏覽器版本有一定要求

3.**跨域請求

前端向傳送請求,經過**,請求需要的伺服器資源

缺點:需要額外的**伺服器

4.html5 postmessage 方法

允許來自不同源的指令碼採用非同步方式進行有限的通訊,可以實現跨文字、多視窗、跨域訊息傳遞

缺點:瀏覽器版本要求,部分瀏覽器要配置放開跨域限制

5.修改 document.domain 跨子域

相同主網域名稱下的不同子網域名稱資源,設定 document.domain 為 相同的一級網域名稱

缺點:同一一級網域名稱;相同協議;相同埠

6.基於 html5 websocket 協議

websocket 是 html5 一種新的協議,基於該協議可以做到瀏覽器與伺服器全雙工通訊,允許跨域請求

缺點:瀏覽器一定版本要求,伺服器需要支援 websocket 協議

7.document.*** + iframe

通過 iframe 是瀏覽器非同源標籤,載入內容中轉,傳到當前頁面的屬性中

缺點:頁面的屬性值有大小限制

如何實現跨域?

1.最經典的跨域方案jsonp jsonp本質上是乙個hack,它利用標籤不受同源策略限制的特性進行跨域操作。jsonp優點 實現簡單 相容性非常好 jsonp的缺點 只支援get請求 因為標籤只能get 有安全性問題,容易遭受xss攻擊 需要服務端配合jsonp進行一定程度的改造 jsonp的實現...

如何實現跨域

跨域的前提條件 所有的跨域請求都必須經過資訊提供方允許 如果未經允許即可獲取,那是瀏覽器同源策略出現漏洞 解決 1.src跨域 jsonp方式 2.cors方式 3.伺服器 cors 對比 jsonp 都能解決 ajax直接請求普通檔案存在跨域無許可權訪問的問題 jsonp只能實現get請求,而co...

什麼是跨域及如何實現跨域

實現cors 在nginx中配置cors 一旦這三項資料中 協議 主機位址以及埠 有一項不同,那麼該資源就將被認為是從不同的origin得來的,進而不被允許訪問 cors實際上包含了三種請求 referer 因此preflighted request會先發出options請求,向服務端詢問訪問資源的...