使用postMessage进行跨域通信

2019-10-17  本文已影响0人  桃花谷主V

跨域通信是前端开发中经常会遇到的情景,跨域通信有多种多样的方式,今天就详细说一下使用postMessage这样方式进行跨页面脚本的数据通信。

一、认识window.postMessage

根据MDN的官方文档解释:window.postMessage() 方法可以安全地实现跨源通信。通常,对于两个不同页面的脚本,只有当执行它们的页面位于具有相同的协议(通常为https),端口号(443为https的默认值),以及主机 (两个页面的模数 Document.domain设置为相同的值) 时,这两个脚本才能相互通信。

二、使用语法

1、向目标窗口发送消息

  otherWindow.postMessage(message,targetOrigin)

2、目标窗口接收消息

  window.addEventListener("message", receiveMessage, false);
  function receiveMessage(event){
    // event.origin 表示消息的来源地址
    // event.data 表示接收到的数据
    if (event.origin !== 'http: //www.xxxx.com') {
      return
    } else { 
      console.log(event.data)
    }
  }

三、具体案例

本案例是在Vue2.0+iView3.0的环境下进行,在一个弹框内嵌套一个iframe页面。

上一篇下一篇

猜你喜欢

热点阅读