小編給大家分享一下基于瀏覽器同源策略的有哪些跨域方式,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
Flash跨域
這是一種比較老的跨域方式,現在基本不使用了,要是有興趣可以自己去看看,在這里就不做討論。
服務器中轉代理
由于同源策略只是瀏覽器的限制,服務器不會受到同源策略的限制,所以我們可以發送請求的時候,可以設置一個代理服務器,這個代理服務器和我們當前的url同源,首先請求到該同源的服務器,然后由同源的服務器重定向到我們要訪問的url,由于服務器和服務器之前不受同源策略的限制,所以即使不是同源的也可以不受限制的訪問。

服務器中轉代理也是我們常用的一種方式。
JsonP跨域。
JsonP跨域,是我們經常使用到的一種跨域方式。想必大家都有這樣的經歷,在script中使用,src屬性,引入外部資源,比如jQuery,稍微注意以下就能看到請求的url其實和我們本地的url不同源的,但是為什么我們卻可以請求到資源呢? 這是因為src屬性具有跨域的能力。凡是擁有src這個屬性的標簽都擁有跨域的能力,而且都是GET請求比如<script>、<img>、<iframe>
使用方法
因為我們無法監控通過<script>的src屬性是否把數據獲取完成,所以我們需要做一個處理。一般是我們向后端傳遞參數的時候,傳一個處理跨域獲取數據的函數,服務端會根據參數cb的值返回 對應的內容。
function doJSON(data){}
var scri = document.createElement('script')
scri.src = 'http://xxx' + '?cd =' +doJSON這樣后臺返給我們的數據像這樣: doJSON(data), 這樣在我們的頁面中就會自動執行我們定義好的方法,而且方法的參數就是我們想要的數據,我們就可以在該方法中處理相關業務邏輯。
document.domain
我們可以在頁面中設置documentl.domain,但是這只是針對基礎域名相同的情況。例如 在bj.58.com與tj.58.com 中設置document.domain = '58.com',那么只要基礎域名是58.com,就可以訪問這兩個頁面
以上是“基于瀏覽器同源策略的有哪些跨域方式”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。