摘要:一什么是跨域跨域簡(jiǎn)單的理解就是同源策略的限制。同源策略限制的內(nèi)容請(qǐng)求不能正常進(jìn)行。同源策略默認(rèn)地址是網(wǎng)頁(yè)的本身。
一、什么是跨域?
跨域簡(jiǎn)單的理解就是JavaScript同源策略的限制。是出于安全的考慮,a.com域名下的js不能操作b.com或者c.com域名下的對(duì)象。
當(dāng)協(xié)議、子域名、主域名、端口號(hào)中任意一個(gè)不相同時(shí),都算作不同域。不同域之間相互請(qǐng)求資源,就算叫“跨域”。
一個(gè)正常的域名地址組成(圖片來自網(wǎng)絡(luò)資源):
注意:跨域不是請(qǐng)求發(fā)布出去,請(qǐng)求可以正常發(fā)出,服務(wù)器也能收到并返回結(jié)果,只是結(jié)果被瀏覽器所攔截了。
附上一張參考圖,便于大家深入理解(圖片來自網(wǎng)絡(luò)資源)
同源策略限制了從同一個(gè)源加載的文檔或腳本如何與來自另一個(gè)源的資源進(jìn)行交互。這是一個(gè)用于隔離潛在惡意文件的重要安全機(jī)制。這是一種保護(hù)用戶信息,防止惡意身份偽造的一種安全機(jī)制。
同源策略限制的內(nèi)容:
Ajax請(qǐng)求不能正常進(jìn)行。
Cookie、LocalStoage、indexDB等無法讀取。
3.DOM 無法獲得。
不過,有幾個(gè)標(biāo)簽卻可以允許跨域請(qǐng)求資源(可以作為解決跨域的一種方案)。
1.三、處理跨域方法一——JSONP
2.
3.
JSONP是跨域通信最常用的方法,其最大的特點(diǎn)就是簡(jiǎn)單適用、兼容性好,可用于解決主流瀏覽器的跨域數(shù)據(jù)訪問的問題。 缺點(diǎn)是僅支持get方法具有局限性。 它的基本思想是,在網(wǎng)頁(yè)中添加一個(gè)
注意,該請(qǐng)求的查詢字符串有一個(gè)callback參數(shù),用來指定回調(diào)函數(shù)的名字,這對(duì)于JSONP是必需的。
由于