亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

postMessage處理iframe 跨域問題

cooxer / 1628人閱讀

摘要:四傳遞信息給父頁面參考跨域子頁面?zhèn)鹘o父頁面父頁面代碼崔渙測試父頁面參數(shù)中有屬性,就是父窗口發(fā)送過來的數(shù)據(jù)把父窗口發(fā)送過來的數(shù)據(jù)顯示在子窗口中。五簡單分析和安全問題傳送過來的信息如下圖,幾乎包含了所有應(yīng)該有的信息。

背景:由于同源策略存在,javascript的跨域一直都是一個棘手的問題。父頁面無法直接獲取iframe內(nèi)部的跨域資源;同時,iframe內(nèi)部的跨域資源也無法將信息直接傳遞給父頁面。

一:傳統(tǒng)的解決方式。

傳統(tǒng)的iframe資源解決方式:主要通過通過中間頁面代理,此處不再贅述,參考中間頁獲取跨域iframe

二:html5 postMessage的產(chǎn)生

隨著HTML5的發(fā)展,html5工作組提供了兩個重要的接口:postMessage(send) 和 onmessage。這兩個接口有點類似于websocket,可以實現(xiàn)兩個跨域站點頁面之間的數(shù)據(jù)傳遞。

postMessage API

下面是實踐過程中兩個小栗子:分別父頁面?zhèn)鬟f信息給iframe,iframe傳遞信息給父頁面。

三:iframe獲取父頁面信息

話不多說,直接上碼:
參考demo:父頁面?zhèn)鹘o子頁面demo

父頁面代碼


    
    崔渙 iframe postmessage 父頁面
    






子頁面代碼
 
  
  
 崔渙測試子頁面信息 
  
  
  
     this is the 8003 port for cuixiaozhuai 
     

demo 效果如下圖:兩個跨域頁面之間,父頁面給子頁面?zhèn)鬟f數(shù)據(jù)。

四:iframe傳遞信息給父頁面

參考demo:跨域子頁面?zhèn)鹘o父頁面demo

父頁面代碼

 
 
 崔渙測試父頁面
 
 
 
     
     
this is the 1015 port for cuixiaozhuai。
子頁面代碼


    
    崔小渙iframe postmessage 測試頁面
    



this is the port for cuixiaozhuai

demo 效果如下圖:兩個跨域頁面之間,子頁面?zhèn)鬟f數(shù)據(jù)給父頁面?zhèn)鬟f數(shù)據(jù)。

五:postmessage簡單分析和安全問題

postmessage 傳送過來的信息如下圖,

幾乎包含了所有應(yīng)該有的信息。甚至data中可以包含object,出于安全考慮可以域的校驗,數(shù)據(jù)規(guī)則的校驗安全校驗,如下代碼

 window.addEventListener("message", function (event) {
        
        //校驗函數(shù)是否合法
        var checkMessage = function () {
            // 只獲取需要的域,并非所有都可以跨域
            if (event.origin != "need domain") {
                return false;
            }

            
            var message = event.data;
            // 傳輸數(shù)據(jù)類型校驗
            if (typeof(message) !== "object") {
                return false;
            }

            // message 的rule中包含xxx則為xxx需要字段。
            return message.rule === "xxx";
        };

        if (checkMessage()) {
            // 通過校驗進行相關(guān)操作
            addDetailFunc(event);
        }
    });

【轉(zhuǎn)載請注明:postMessage處理iframe 跨域問題 | 靠譜崔小拽 】

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/78770.html

相關(guān)文章

  • 關(guān)于跨域問題

    摘要:面試必考題吧,所以在這會詳細介紹以下內(nèi)容跨域產(chǎn)生的原因羅列最常用的解決方法分析各種方法原理羅列各種方法優(yōu)缺點什么是跨域由于瀏覽器廠商對安全性的考慮,提出了瀏覽器的同源策略做為解決方案。 面試必考題吧,所以在這會詳細介紹以下內(nèi)容 跨域產(chǎn)生的原因 羅列最常用的解決方法 分析各種方法原理 羅列各種方法優(yōu)缺點 什么是跨域 由于瀏覽器廠商對安全性的考慮,提出了瀏覽器的同源策略做為解決方案。它...

    ZoomQuiet 評論0 收藏0
  • 關(guān)于跨域問題

    摘要:面試必考題吧,所以在這會詳細介紹以下內(nèi)容跨域產(chǎn)生的原因羅列最常用的解決方法分析各種方法原理羅列各種方法優(yōu)缺點什么是跨域由于瀏覽器廠商對安全性的考慮,提出了瀏覽器的同源策略做為解決方案。 面試必考題吧,所以在這會詳細介紹以下內(nèi)容 跨域產(chǎn)生的原因 羅列最常用的解決方法 分析各種方法原理 羅列各種方法優(yōu)缺點 什么是跨域 由于瀏覽器廠商對安全性的考慮,提出了瀏覽器的同源策略做為解決方案。它...

    livem 評論0 收藏0
  • 關(guān)于跨域問題

    摘要:面試必考題吧,所以在這會詳細介紹以下內(nèi)容跨域產(chǎn)生的原因羅列最常用的解決方法分析各種方法原理羅列各種方法優(yōu)缺點什么是跨域由于瀏覽器廠商對安全性的考慮,提出了瀏覽器的同源策略做為解決方案。 面試必考題吧,所以在這會詳細介紹以下內(nèi)容 跨域產(chǎn)生的原因 羅列最常用的解決方法 分析各種方法原理 羅列各種方法優(yōu)缺點 什么是跨域 由于瀏覽器廠商對安全性的考慮,提出了瀏覽器的同源策略做為解決方案。它...

    Vicky 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<