成人午夜激情影院,小视频免费在线观看,国产精品夜夜嗨,欧美日韩精品一区二区在线播放

JavaScript跨域訪問的解決方案(代碼)

2011-09-22 16:38:31來源:灰太狼的窩作者:

JS的跨域訪問一直是大家經常遇到并且不好解決的問題,前不久灰太狼就碰巧處理過一次,在網上搜羅了各式各樣的解決方案,經過不斷測試最終是成功了,現在灰太狼把經驗分享給大家!

JS的跨域訪問一直是大家經常遇到并且不好解決的問題,前不久灰太狼就碰巧處理過一次,在網上搜羅了各式各樣的解決方案,經過不斷測試最終是成功了,現在灰太狼把經驗分享給大家!

JS跨子域訪問

對于JS跨子域訪問,解決方案較為簡單,只要把各子域頁面的JS里面統一加上document.domain = “xxx.com”即可。其中的xxx.com是你的主域名

JS跨主域訪問

這個就有點難度了,灰太狼前不久解決的就是這個問題,網上的解決方案有的簡單,有的復雜,看了好些,發現都有點問題,要不就是有瀏覽器兼容性,要不就是根本不可用,不知道是不是系統環境造成的,功夫不負有心人,找到一個SOHU哥們的技術貼,幫我解決了問題,下面就跟大家既簡單有詳細的分享一下!

首先,介紹下我遇到的具體問題:

    * 有一個頁面,叫它A吧,所在域為x.y.com
    * 頁面A有一個子頁面B, 所在域為a.b.com
    * 我需要子頁面B調用父頁面A里面的一個JS方法

其實解決調用就解決了傳值,就是解決訪問問題,這點不明白的自己想 :(

因為安全性的問題,Javascript不允許進行跨域的調用,其實本意是好的,但是我自己擁有或者說有權利訪問的兩個域也不允許,太限制我們的功能了!

然后,SOHU的哥們提出了解決方案:

    * 在頁面B中再創建一個子頁面C, 所在域為x.y.com
    * 在頁面B中創建子頁面C時使用url#data方式把方法參數傳遞給頁面C
    * 頁面C通過document.location.hash獲取data數據,使用window.top.xxx或者window.parent.parent.xxx方式調用頁面A中的方法

JS跨域訪問示例圖
JS跨域訪問示例圖

是不是很簡單啊,因為頁面A和C頁面同屬于同一域,我們在沒有違反安全性的基礎上解決的JS跨域調用的問題。

其實有的時候碰到技術難題,一直悶頭去想細節,鉆到問題中,不一定能解決問題,反倒是跳出問題,從大方面上去想,最終倒出現了解決方案!

其實本例還可以進一步擴展一下!

比如: 頁面B的高度對于頁面A是未知的,那么在加載時,為了更好的控制整體顯示效果,頁面B把自己的高度傳遞給頁面C,而頁面C傳給頁面A,頁面A就可以做出適當的調整了!

原文:http://www.rockylife.com/2011/09/js-cross-domain/
關鍵詞:JavaScriptjs跨域

贊助商鏈接:

主站蜘蛛池模板: 镇赉县| 北宁市| 晴隆县| 宜都市| 洛扎县| 通江县| 东城区| 丹东市| 宝兴县| 玉屏| 铜山县| 四川省| 静安区| 上犹县| 额尔古纳市| 临湘市| 武汉市| 北辰区| 慈利县| 阿荣旗| 六盘水市| 九寨沟县| 久治县| 芮城县| 株洲县| 永新县| 来安县| 西吉县| 丽江市| 道真| 建始县| 孟州市| 瑞安市| 南阳市| 漳平市| 绥阳县| 邛崃市| 仙桃市| 西充县| 固阳县| 汪清县|