iframe 利用postMessage 跨域通信

iframe + postMessage 跨域通信 Web是构建在同源策略基础之上,同源策略是浏览器的行为,是为了保护本地数据不被JavaScript代码获取回来的数据污染,因此拦截的是客户端发出的请求回来的数据接收,即请求发送了,服务器响应了,但是无法被浏览器接收。我们可以通过iframe来实现不同域之间互相请求资源。 同源 概念:协议相同、域名相同、端口相同 目的:保证用户信息的安全,防止用户数据泄露 限制范围: Cookie、LocalStorage、 IndexDB 无法读取 Dom 无法获取 AJAX 请求在浏览器端有跨域限制 ifr. 阅读详情

1.子页面:http://localhost:7080/b.jsp

<button onclick="send()">send</button>

<script>
window.addEventListener('message', function(ev) {
    var data = ev.data;
    console.info('message from parent:', data);
}, false);

function send() {
    parent.postMessage("hello", 'http://localhost:8080/'); // 若父页面的域名和指定的不一致,则postMessage失败
}
</script>

2.父页面:http://localhost:8080/a.jsp

<button style="font-size:20px;" onclick="send()">post message</button>
<iframe src="http://localhost:7080/b.jsp"></iframe>

<script>
function send() {
    var data = {name:"111",age:"222"};
	window.frames[0].postMessage(data, 'http://localhost:7080'); // 触发跨域子页面的messag事件
}

window.addEventListener('message', function(messageEvent) {
    var data = messageEvent.data; 
    console.info('message from child:', data);
}, false);
</script>

3.结果

利用postMessage实现iframe跨域通信实战 是一个允许不同源之间安全通信的API。在HTML5规范中被标准化,这个API为跨源交互提供了新的可能性。它的主要目的是在不同源之间安全地传递信息,而不会受到同源策略的限制。通过,无论是在iframe、新窗口还是通过Web Workers,页面都可以与不同的源安全地交换数据。 阅读详情

相关推荐

OpenCV实战:从边缘检测到透视校正,打造智能文档扫描仪(Python代码详解)

本文详细介绍了如何使用OpenCV和Python从零开始构建一个智能文档扫描仪。通过边缘检测、透视校正和文字增强等核心技术,将倾斜、模糊的文档照片转换为清晰、方正的高质量扫描图像。文章提供了完整的代码实现和参数调优经验,帮助开发者打造稳定、高效的文档处理工具。

flower的专栏 695

跨域通信实战:利用iframe与postMessage安全获取接口数据

本文深入探讨了利用iframe与postMessage实现安全跨域通信的实战技巧。通过详细解析postMessage的工作原理、安全机制及多种通信模式,帮助开发者解决电商、支付等场景下的跨域数据交互难题,特别强调了接口数据的安全获取与验证方法。

weixin_30352645的博客 520

CATIA二次开发CAA安装

安装资料在网盘里 Win7 64位 以下软件均已管理员身份运行: 1.安装vs2008->自定义安装->选择要安装的功能->Visual C+±>x64编译器和工具 1.2安装SP1 2.安装CATIA V5 R21->win7_XP->CATIA.P3.V5R21.Win64->setup.exe 2.1安装目录改为D盘 2.2环境目录位置默认 3.安装...

qq_39311458的博客 4631

iframe: 通过postMessage实现父子页面通信

在前端开发中,跨域是一个常见的问题,由于同源策略的限制,浏览器不允许在不同源的页面之间直接进行通信。解决跨域问题有多种方式,其中一种常用的方式是使用postMessage。它是HTML5引入的一种跨文档通信的机制,可以在不同的窗口或框架之间传递数据,即使这些窗口或框架不属于同一个源。本文将介绍改方法的使用与场景

qq_45796592的博客 2743

TESSY创建单元测试或集成测试工程

我们以tessy5.1为例,给大家展示单元测试和集成测试工程的创建过程。

空气中的告白专栏 1683

系统回溯信息:遇到严重错误。已将回溯写入...PTC... raceback.log请将其发送给|技术支持|。

一、问题分析 这种问题一旦遇上了,如果忘了保存,直接心态爆炸。 该问题一般是显卡驱动的问题。ProE/Creo对显卡的基本要求是:支持Open_GL的3D显卡,分辨率为1024×768像素以上,推荐使用64位独立显卡,显存512MB以上。如若显卡性能太低,打开软件后易自动退出。 二、解决方法 <1>有一个非常简单的方法是:在config.pro文件中,改变图形配置graphics为” win32_gdi”而不是默认的“...

幕光倾城的博客 2万+

通过postMessage在iframe和父窗口之间通信

在 HTML5 中新增了 postMessage 方法,postMessage 可以实现跨文档消息传输(Cross Document Messaging) postMessage(data,origin) data:要传的数据 origin: 字符串参数,指明目标窗口的源,协议+主机+端口号。如果为*则是所有的窗口,如果要指定和当前窗口同源的话设置为"/"。 iframe 向 父窗口通信: //iframe const parent = window.parent; parent.postMessag.

EmotionComputer 4631

FICO F.27 Customer statement 打印

需求,定制化打印,替换标准的F.27打印 类似于采购订单的打印,但是略有不同,查阅资料之后步骤如下: T-code F.27 is SAP standard program to produce customer/vendor correspondence (letter). Correspondence Type is used to specify the related printing program and form for the particular correspondence. SAP

IamRunjiang的博客 1965

postMessage:iframe(子页面) 与 父页面 通信

postMessage

Ldajiangyou的博客 2333

Halcon: 获取仿射矩形-rectangle2的四个顶点、四条边的中点

Halcon 工业应用实用教程中的一个例子: * CenterY : 仿射矩形中心y * CenterX: 仿射矩形中心x * Phi: 仿射矩形角度 * Len1: 仿射矩形宽的一半 * Len2: 仿射矩形高的一半 * CornerY: 仿射矩形端点y * CornerX: 仿射矩形端点x * LineCenterY: 仿射矩形边中点y * LineCenterx: 仿射矩形边中点x * 矩...

ruotianxia的博客 8572

一文学会Inner-MPDIoU:YOLOv11边界框回归优化全解析

Inner-MPDIoU 凭借“辅助边框+最小点距离”的双重创新,成功解决了传统 IoU 损失在小目标、遮挡场景、位置偏差场景下的收敛和判别难题,为 YOLOv11 注入了更强的边框回归能力。从原理剖析到代码集成,本教程已为你铺就了一条“定位精度跃升”的实战路径。现在,不妨亲自上手尝试,让你的目标检测模型在各类数据集上都能交出一份“定位精准”的答卷——相信我,当你看到检测框完美贴合目标的那一刻,你会明白这份尝试的价值。我很乐意在你实践过程中帮你解决任何问题,让我们一起推动目标检测在边框回归领域的边界。

know_F0727的博客 141

iframe父子传参通信之postMessage

iframe父子传参通信之postMessage 1.使用postMessage向父组件传值 window.parent.postMessage(data,origin) 注:data–传对象需要使用JSON.stringify()转成json字符串 origin–发送消息窗口的源(协议+主机+端口号),可以解决跨域问题 2.在父组件中接收,可以写在mounted,created钩子函数中 window.addEventListener('message', (e) =>{ //接收传过来的值是对

m0_44949211的博客 1380

分布式计算Ray框架面试题及参考答案

动态任务图执行引擎是一种能够根据任务之间的依赖关系和运行时的实际情况,动态构建和执行任务图的系统。在 Ray 中,动态任务图执行引擎允许任务在运行时根据数据可用性、计算资源状态等因素,灵活地决定后续任务的执行顺序和方式。对于 AI 应用来说,其往往具有动态性的特点。例如,在深度学习模型的训练过程中,可能需要根据训练的结果动态调整下一轮训练的参数、数据增强方式或者模型结构。动态任务图执行引擎可以很好地支持这些动态需求。它能够根据 AI 应用中各个任务的实时输出和依赖关系,动态地生成和调整任务图。

大模型大数据攻城狮的专栏 1349

iframe PostMessage 实现父子组件的传值

我们都知道可以使用iframe可以把一个页面嵌套到另外一个页面内部进行显示,那么这两个页面如何进行传值交互呢, 下面我们就简单的来看一下 首先,新建两个文件,parant.html和child.html(在这里我使用的是vue语法哈~) 首先是将child.html的内容嵌入parent.html中,代码如下所示: <div id="app"> <iframeid="child" src="http://127.0.0.1:5500/...

rolinabc的博客 1万+

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

5 iframe嵌套页面_利用postMessage解决iframe跨域通信

前言作为前端,我们经常会接触到的一种页面嵌套式形态就是iframe,而针对iframe最常见的需求点就是需要高度自适应,要解决这个问题,就必须使得父子页面之间可以进行通信。由于同源策略影响,跨域通信是最为棘手的存在。目前有两种比较通用的方法可以支持。方法一页面A:http://www.a.com/iframe/a.html 页面B:http://www.a.com/iframe/b.html 页面...

weixin_39994949的博客 283

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

vue中iframe使用详解,结合postMessage实现跨域通信

使用场景 需求:在一个H5项目的页面中以url的方式嵌入另一个项目的页面。(不得不使用iframe) 而为了兼容移动端api(封装的一个移动端api,iframe内嵌页面不生效),需要实现父子页面的通信 (使用postMessage)。 iframe使用 基本使用 直接在页面嵌套iframe标签指定src即可使用iframe。 <iframe src="xxx.html"></i...

艾欢欢的博客 5540

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

iframe通信

一、说说iframe的跨域 当文件目录如下,网站中有2个目录分别为a、b,并且各有一个index.html,a目录下还有个b.html: a页面有4个iframe,分别以相对路径和绝对路径嵌入【/a/b.html】和【/b/index.html】,/a/index.html页面的body内容如下: <!-- 不跨域 --> <iframe src="./b.html" frameborder="0"></iframe> <iframe src="/b/"

qq_28494649的博客 5388

vue---iframe的postMessage跨域通信

前端爬坑日记之vue内嵌iframe并跨域通信 下面将3天的爬坑最终以问答的方式总结如下: 1、Vue组件中如何引入iframe? 2、vue如何获取iframe对象以及iframe内的window对象? 3、vue如何向iframe内传送信息? 4、iframe内如何向外部vue发送信息? 1、Vue组件中如何引入iframe? <template> <div class="act-form"> <iframe :src="src"><

最爱松露巧克力 2059

使用 iframe + postMessage 实现跨域通信

在实际项目开发中可能会碰到在 a.com 页面中嵌套 b.com 页面,这时第一反应是使用 iframe,但是产品又提出在 a.com 中操作,b.com 中进行显示,或者相反。 1、postMessage  postMessage方法允许来自不同源的脚本采用异步方式进行有限的通信,可以实现跨文本档、多窗口、跨域消息传递。语法: otherWindow.postMessage(m

糖衣 8万+

记录 iframe 跨域通信及安全配置

然而,随着跨域问题的日益严峻,如何确保在安全的前提下实现不同源之间的通信和资源加载,成为了开发者需要解决的关键问题。中,造成点击劫持(Clickjacking)等安全问题,你可以使用以下的头部配置来增强安全性。:由于浏览器的同源策略,父页面和 iframe 之间默认不能互相访问对方的资源。提供了一个安全的方式,让不同域的 iframe 和父页面之间能够安全地通信。与传统的 DOM 操作不同,,不同域的 iframe 默认不能访问父页面的资源,反之亦然。中,第二个参数是目标源,确保只允许来自指定源的消息。

qq_36291550的博客 2117

iframe跨域通信

iframe通信 在跨域情况下,可以使用 postMessage 配合监听 onmessage 调用

block_xu的博客 2779

利用HTML5的window.postMessage实现跨域通信

4.HTML5的window.postMessage简述 postMessage是html为了解决跨域通信,特别引入的一个新的API,目前支持这个API的浏览器有:Firefox, IE8+, Opera, Safari, Chrome。postMessage允许页面中的多个iframe/window的通信,postMessage也可以实现ajax直接跨域,不通过服务器端代理。 感谢苏...

aini_zlr2008的博客 443

iframe父子传参通信

在最近的项目里面,用到了不少关于iframe父子传参通信的相关操作,记录一下,虽然很简单,但是确实十分有用的; iframe通信可以分为2种,跨域和非跨域两种.分别说明; 有一点很重要,iframe是可以给name 属性的;给上name 属性可以省下一些代码; 非跨域 父调子 //父页面 <button class="b" id="b">点击</button> <iframe src="a.html" name='child' id="f"></ifra.

高先生的猫 1237

iframe内嵌及跨域通信

获取iframe节点: document.getElementById('iframeId') document.getElementsByName('iframeName') document.getElementsByClassName('iframeClassName') document.getElementsByTagName('iframe') document.querySelect...

欢乐时光已经开始---博客 1753

浅谈localStorage跨域的解决方案——postMessage和iframe

postMessage(data,origin)方法允许来自不同源的脚本采用异步方式进行通信,可以实现跨文本档、多窗口、跨域消息传递。接受两个参数: ① data:要传递的数据,html5规范中提到该参数可以是JavaScript的任意基本类型或可复制的对象,然而并不是所有浏览器支持任意类型的参数,部分浏览器只能处理字符串参数,所以在传递参数时需要使用JSON.stringify()方法对对象参

筱葭的博客 1万+

域,域名,同域,跨域及解决

转载文章:web服务(同域和跨域)  作者:淘码小工  来源:简书 转载文章:关于跨域,以及跨域的几种方式   作者:陈诗烁 来源:博客园 域:Windows网络中独立运行的单位,域之间相互访问则需要建立信任关系;当一个域与其他域建立了信任关系后,2个域之间不但可以按需要相互进行管理,还可以跨网分配文件和打印机等设备资源,使不同的域之间实现网络资源的共享与管理,以及相互通信和数据传输。域既是 ...

singledogsingledog的博客 1万+
上一篇: H5 获取定位信息
下一篇: ElasticsearchTemplate 搜索分页 并高亮显示搜索条件
knife1220
博客等级 码龄15年 33粉丝 176原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值