postMessage解决跨域、跨窗口消息传递

文章目录

    • 同源策略
    • 消息传递
    • 语法
      • 发送消息
      • 接收消息
    • 安全问题
    • 示例

同源策略

要理解跨域,我们首先要知道什么是同源策略。

何谓同源:如果两个URL的协议主机地址端口相同,则表示他们同源。

浏览器的同源策略,限制了来自不同源的"document"或脚本,对当前"document"读取或设置某些属性。

  • 根据这个策略,a.com域名下的JavaScript无法跨域操作b.com域名下的对象。比如,baidu.com域名下的页面中包含的JavaScript代码,不能访问google.com域名下的页面内容。

  • 包括Ajax(事实上,Ajax也是由JavaScript组成)。通过XMLHttpRequest对象实现的Ajax请求,不能向不同的域提交,比如,在abc.test.com下的页面,不能向def.test.com提交Ajax请求。

同源策略在现实应用中是十分重要的。假设攻击者利用Iframe把真正的银行登录页面嵌到他的页面上,当用户使用真实的用户名、密码登录时,该策略的存在,就可以避免JavaScript在页面通过读取到用户表单中的内容,泄漏用户名和密码信息。

在浏览器中,

你可能感兴趣的:(JavaScript,javascript,前端)