1.JSONP(JSON with Padding)
可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題。
由于Web 頁面上調(diào)用 js 文件不受瀏覽器同源策略的影響,所以可以通過 Script 便簽可以進(jìn)行跨域的請(qǐng)求。


2.CORS (Cross-Origin Resource Sharing)
CORS定義一種跨域訪問的機(jī)制,可以讓AJAX實(shí)現(xiàn)跨域訪問。CORS 允許一個(gè)域上的網(wǎng)絡(luò)應(yīng)用向另一個(gè)域提交跨域 AJAX 請(qǐng)求。實(shí)現(xiàn)此功能非常簡單,只需由服務(wù)器發(fā)送一個(gè)響應(yīng)標(biāo)頭即可。(使用時(shí)IE瀏覽器不能低于IE10。)

CORS與JSONP的使用目的相同,但是比JSONP更強(qiáng)大。
JSONP只支持GET請(qǐng)求,CORS支持所有類型的HTTP請(qǐng)求。JSONP的優(yōu)勢在于支持老式瀏覽器,以及可以向不支持CORS的網(wǎng)站請(qǐng)求數(shù)據(jù)。
3.降域
通過雙向設(shè)置 document.domain 的值,解決主域名下的跨域問題。(document.domain:獲取/設(shè)置當(dāng)前文檔的原始域部分, 用于同源策略。)
有兩個(gè)二級(jí)域名:a.jirengu.com 和 b.jirengu.com,可通過設(shè)定 document.domain 的值為主域名:jirengu.com 的方式,突破瀏覽器的同源策略限制,來獲取對(duì)方的元素
a —— document.domain ='jirengu.com'
b —— document.domain ='jirengu.com'
降域具有很大的局限性,適用范圍較小,適合在同一主域名下使用
4.postmessage
HTML5中新增postMessage方法,可以實(shí)現(xiàn)跨文檔消息傳輸。該方法可以通過綁定window的message事件來監(jiān)聽發(fā)送跨文檔消息傳輸內(nèi)容。
a頁面

b頁面
