跨域是指乙個域下的文件或指令碼試圖去請求另乙個域下的資源,這裡跨域是廣義的。
廣義的跨域:
2.) 資源嵌入: 、、
3.) 指令碼請求: js發起的ajax請求、dom和js物件的跨域操作等
其實我們通常所說的跨域是狹義的,是由瀏覽器同源策略限制的一類請求場景。
什麼是同源策略?
同源策略/sop(same origin policy)是一種約定,由netscape公司2023年引入瀏覽器,它是瀏覽器最核心也最基本的安全功能,如果缺少了同源策略,瀏覽器很容易受到xss、csfr等攻擊。所謂同源是指"協議+網域名稱+埠"三者相同,即便兩個不同的網域名稱指向同乙個ip位址,也非同源。
同源策略限制以下幾種行為:
1.) cookie、localstorage 和 indexdb 無法讀取
2.) dom 和 js物件無法獲得
3.) ajax 請求不能傳送
url 說明 是否允許通訊
同一網域名稱,不同檔案或路徑 允許
同一網域名稱,不同埠 不允許
同一網域名稱,不同協議 不允許
網域名稱和網域名稱對應相同ip 不允許
主域相同,子域不同 不允許
不同網域名稱 不允許
1、 通過jsonp跨域
2、 document.domain + iframe跨域
3、 location.hash + iframe
4、 window.name + iframe跨域
5、 postmessage跨域
6、 跨域資源共享(cors)
7、 nginx**跨域
8、 nodejs中介軟體**跨域
9、 websocket協議跨域
關於跨域問題
解決方案 使用jsonp jsonp是使用scripe標籤來突破同源策略的一種實現方式,只能傳送get請求,就算是用jqueryajax指明了post請求,jquery也會在傳送請求的過程中轉化為get請求。具體實現方案未研究。使用子頁面 使用巢狀iframe子頁面的方法,避開同源策略。跨域資源共享...
關於字型跨域
寫在前面的話 跨域問題啊 字型跨域,居然碰到了 網上蒐羅來的答案,有機會的可以試試有沒有效 原文 css載入字型的跨域問題 載 剛才碰到乙個css載入字型跨域問題,記錄一下啊。站點的動態請求與靜態檔案請求是不同的網域名稱的。站點的網域名稱為 www.domain.com,而靜態檔案的網域名稱為 st...
關於springmvc跨域
關於跨域問題,主要用的比較多的是cros跨域。詳細介紹請看 但是,在springmvc angularjs下支援跨域請求時,出現複雜跨域場景 post json 失敗的情況。開始的跨域配置如下 public class crossinterceptor extends handlerintercep...