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,就可以訪問這兩個頁面
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。
新聞熱點
疑難解答