您好,登錄后才能下訂單哦!
小編給大家分享一下基于瀏覽器同源策略的有哪些跨域方式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Flash
跨域
這是一種比較老的跨域方式,現(xiàn)在基本不使用了,要是有興趣可以自己去看看,在這里就不做討論。
服務(wù)器中轉(zhuǎn)代理
由于同源策略只是瀏覽器的限制,服務(wù)器不會受到同源策略的限制,所以我們可以發(fā)送請求的時(shí)候,可以設(shè)置一個代理服務(wù)器,這個代理服務(wù)器和我們當(dāng)前的url
同源,首先請求到該同源的服務(wù)器,然后由同源的服務(wù)器重定向到我們要訪問的url
,由于服務(wù)器和服務(wù)器之前不受同源策略的限制,所以即使不是同源的也可以不受限制的訪問。
服務(wù)器中轉(zhuǎn)代理也是我們常用的一種方式。
JsonP
跨域。
JsonP
跨域,是我們經(jīng)常使用到的一種跨域方式。想必大家都有這樣的經(jīng)歷,在script
中使用,src
屬性,引入外部資源,比如jQuery
,稍微注意以下就能看到請求的url
其實(shí)和我們本地的url
不同源的,但是為什么我們卻可以請求到資源呢? 這是因?yàn)?code>src屬性具有跨域的能力。凡是擁有src
這個屬性的標(biāo)簽都擁有跨域的能力,而且都是GET
請求比如<script>、<img>、<iframe>
使用方法
因?yàn)槲覀儫o法監(jiān)控通過<script>
的src
屬性是否把數(shù)據(jù)獲取完成,所以我們需要做一個處理。一般是我們向后端傳遞參數(shù)的時(shí)候,傳一個處理跨域獲取數(shù)據(jù)的函數(shù),服務(wù)端會根據(jù)參數(shù)cb的值返回 對應(yīng)的內(nèi)容。
function doJSON(data){} var scri = document.createElement('script') scri.src = 'http://xxx' + '?cd =' +doJSON
這樣后臺返給我們的數(shù)據(jù)像這樣: doJSON(data), 這樣在我們的頁面中就會自動執(zhí)行我們定義好的方法,而且方法的參數(shù)就是我們想要的數(shù)據(jù),我們就可以在該方法中處理相關(guān)業(yè)務(wù)邏輯。
document.domain
我們可以在頁面中設(shè)置documentl.domain
,但是這只是針對基礎(chǔ)域名相同的情況。例如 在bj.58.com與tj.58.com 中設(shè)置document.domain = '58.com',那么只要基礎(chǔ)域名是58.com,就可以訪問這兩個頁面
以上是“基于瀏覽器同源策略的有哪些跨域方式”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學(xué)習(xí)更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。