IT技術互動交流平臺

關于常用的幾種跨域方式詳細大揭秘

作者:whl  發布日期:2018-11-11 08:33:00

  小編在最近的工作中在跨域方面發現了一些問題,因而趁機查詢了詳細的相關資料并進行了記錄。下面將在瀏覽器同源策略的基礎上的幾種跨域方式給大家進行詳細的介紹,相信對于大家在日常工作上還是非常有參考價值的。

  Flash跨域

  這是一種比較老的跨域方式,現在基本不使用了,要是有興趣可以自己去看看,在這里就不做討論。

  服務器中轉代理

  服務器中轉代理也是我們常用的一種方式。由于同源策略只是瀏覽器的限制,服務器不會受到同源策略的限制,所以我們可以發送請求的時候,可以設置一個代理服務器,這個代理服務器和我們當前的url同源,首先請求到該同源的服務器,然后由同源的服務器重定向到我們要訪問的url,由于服務器和服務器之前不受同源策略的限制,所以即使不是同源的也可以不受限制的訪問。

服務器中轉代理

  JsonP跨域

  JsonP跨域,是我們經常使用到的一種跨域方式。想必大家都有這樣的經歷,在script中使用,src屬性,引入外部資源,比如jQuery,稍微注意以下就能看到請求的url其實和我們本地的url不同源的,但是為什么我們卻可以請求到資源呢? 這是因為src屬性具有跨域的能力。凡是擁有src這個屬性的標簽都擁有跨域的能力,而且都是GET請求比如比如<script>、<img>、<iframe>。

  使用方法

  因為我們無法監控通過<script>的src屬性是否把數據獲取完成,所以我們需要做一個處理。一般是我們向后端傳遞參數的時候,傳一個處理跨域獲取數據的函數,服務端會根據參數cb的值返回 對應的內容。這樣后臺返給我們的數據像這樣: doJSON(data), 這樣在我們的頁面中就會自動執行我們定義好的方法,而且方法的參數就是我們想要的數據,我們就可以在該方法中處理相關業務邏輯。

使用方法

  我們可以在頁面中設置documentl.domain,但是這只是針對基礎域名相同的情況。例如 在bj.58.com與tj.58.com 中設置document.domain = '58.com',那么只要基礎域名是58.com,就可以訪問這兩個頁面。

  上面主要是服務器中轉代理、JsonP跨域這兩種跨域方式進行了詳細介紹,Flash跨域還是太老舊,參考價值比較低,大家還是多學習另外兩種方法就可以了。相信大家只需要按照介紹的使用方法進行操作,那么是不會存在問題的。


 


 

延伸閱讀:

Tag標簽: 跨域方式詳解  
  • 專題推薦

About IT165 - 廣告服務 - 隱私聲明 - 版權申明 - 免責條款 - 網站地圖 - 網友投稿 - 聯系方式
本站內容來自于互聯網,僅供用于網絡技術學習,學習中請遵循相關法律法規
香港最快开奖现场直播结果