<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    weidagang2046的專欄

    物格而后知致
    隨筆 - 8, 文章 - 409, 評論 - 101, 引用 - 0
    數據加載中……

    web應用的跨域訪問解決方案

    做過跨越多個網站的Ajax開發的朋友都知道,如果在A網站中,我們希望使用Ajax來獲得B網站中的特定內容,如果A網站與B網站不在同一個域中,那么就出現了跨域訪問問題。Ajax的跨域訪問問題是現有的Ajax開發人員比較常遇到的問題。

    IE對于跨域訪問的處理是,彈出警告框,提醒用戶。如果用戶將該網站納入可信任網站,或者調低安全級別,那么這個問題IE就不會在提醒你。

    FireFox等其它非微軟的瀏覽器遇到跨域訪問,則解決方案統一是拒絕訪問。

    有人說,IE是主流瀏覽器,只要它能正常使用就好了。此言差已,IE雖然能夠處理,但是是有前提的,要么用戶不厭其煩地在頁面彈出警告框之后點擊是(點擊否就不執行該Ajax調用了),要么用戶將該網站納入可信任站點。這兩種做法,在企業管理系統的應用中倒是比較常見,因為系統管理員可以以行政手段保證用戶的行為。但是對于互聯網上的網站或者門戶開發,這種做法則不行。

    最近遇到了這個問題,需要在跨域訪問結束之后完成使主窗口出現一些特效,搜索了一些資料,通過不斷嘗試以及在不同瀏覽器中進行兼容性測試,找到了幾個可行的方案:

    1、Web代理的方式。即用戶訪問A網站時所產生的對B網站的跨域訪問請求均提交到A網站的指定頁面,由該頁面代替用戶頁面完成交互,從而返回合適的結果。此方案可以解決現階段所能夠想到的多數跨域訪問問題,但要求A網站提供Web代理的支持,因此A網站與B網站之間必須是緊密協作的,且每次交互過程,A網站的服務器負擔增加,且無法代用戶保存session狀態。

    2、on-Demand方式。MYMSN的門戶就用的這種方式,不過MYMSN中不涉及跨域訪問問題。動態控制script標記的生成,通過修改script標記的src屬性完成對跨域頁面的調用。此方案存在的缺陷是,script的src屬性完成該調用時采取的方式時get方式,如果請求時傳遞的字符串過大時,可能會無法正常運行。不過此方案非常適合聚合類門戶使用。

    3、iframe方式。查看過醒來在javaeye上的一篇關于跨域訪問的帖子,他提到自己已經用iframe的方式解決了跨域訪問問題。數據提交跟獲取,采用iframe這種方式的確可以了,但由于父窗口與子窗口之間不能交互(跨域訪問的情況下,這種交互被拒絕),因此無法完成對父窗口效果的影響。

    4、用戶本地轉儲方式:IE本身依附于windows平臺的特性為我們提供了一種基于iframe,利用內存來“繞行”的方案,即兩個window之間可以在客戶端通過windows剪貼板的方式進行數據傳輸,只需要在接受數據的一方設置Interval進行輪詢,獲得結果后清除Interval即可。FF的平臺獨立性決定了它不支持剪貼板這種方式,而以往版本的FF中存在的插件漏洞又被fixed了,所以FF無法通過內存來完成暗渡陳倉。而由于文件操作FF也沒有提供支持(無法通過Cookie跨域完成數據傳遞),致使這種技巧性的方式只能在IE中使用。

    5、我自己用于解決這類問題的方式:結合了前面幾種方式,在訪問A網站時,先請求B網站完成數據處理,再根據返回的標識來獲得所需的結果。這種方法的缺點也很明顯,B網站的負載增大了。優點,對session也實現了保持,同時A網站與B網站頁面間的交互能力增強了。最重要的一點,這種方案滿足了我的全部需要。

    總結一下,以上方案中可選擇的情況下,我最推薦on-Demand方式,在不需要提交大量數據的情況下,這種方式能夠解決您的大部分問題。

    from: http://blog.csdn.net/macroway/archive/2006/05/14/728090.aspx

    posted on 2006-11-21 22:12 weidagang2046 閱讀(465) 評論(0)  編輯  收藏 所屬分類: Javascript

    主站蜘蛛池模板: 亚洲AV噜噜一区二区三区| 国产午夜无码精品免费看| 免费中文字幕一级毛片| 国内精品免费视频精选在线观看| 亚洲美女视频一区| 国产男女猛烈无遮挡免费网站 | 亚洲精品无码久久久久AV麻豆| 国产精品免费无遮挡无码永久视频 | 亚洲美女色在线欧洲美女| 国产高清在线精品免费软件| 中文字幕av免费专区| 99久久婷婷国产综合亚洲| 青青草原亚洲视频| 成年午夜视频免费观看视频| 二个人看的www免费视频| 中文字幕亚洲精品无码| 奇米影视亚洲春色| 精品少妇人妻AV免费久久洗澡| a视频免费在线观看| 亚洲Aⅴ在线无码播放毛片一线天| 亚洲第一AV网站| 亚洲国产中文v高清在线观看| 久久WWW免费人成一看片| 好湿好大好紧好爽免费视频| 波多野结衣亚洲一级| 久久精品国产精品亚洲色婷婷 | 亚洲AV永久青草无码精品| 国内一级一级毛片a免费| 99热在线观看免费| yellow免费网站| 蜜桃传媒一区二区亚洲AV| 亚洲同性男gay网站在线观看| 亚洲最大AV网站在线观看| 国产乱子伦精品免费女| 最近新韩国日本免费观看 | 成人毛片100免费观看| 久久久久久久久无码精品亚洲日韩| 亚洲黄色一级毛片| 无码专区—VA亚洲V天堂| 久久久无码精品亚洲日韩软件| 日韩在线视频免费看|