[发明专利]跨域操作的实现方法和装置有效
申请号: | 201710144232.8 | 申请日: | 2017-03-10 |
公开(公告)号: | CN108574709B | 公开(公告)日: | 2021-09-07 |
发明(设计)人: | 宋全旺;胡浩;栾宏伟;宋磊;杨冬越;俞龙;王媛;吴丹;宋腾 | 申请(专利权)人: | 北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司 |
主分类号: | H04L29/08 | 分类号: | H04L29/08;H04L29/06;G06F16/958 |
代理公司: | 北京德琦知识产权代理有限公司 11018 | 代理人: | 孙清然;王琦 |
地址: | 100080 北京市海淀区杏石口路6*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 操作 实现 方法 装置 | ||
本申请公开了一种跨域操作的实现方法和装置,方法包括:浏览器窗口的服务端在脚本加载完成后,向页面中各iframe中客户端发送页面初始化消息;服务端设于窗口顶层页面;页面初始化消息携带客户端需要注册的跨域监听事件;客户端根据页面初始化消息,注册相应跨域监听事件,向服务端发送响应消息,响应消息携带客户端所在iframe的页面状态属性;服务端根据响应消息设置相应iframe的页面状态;服务端监听到所述跨域监听事件发生时,向相应客户端发送相应事件触发请求消息,客户端根据该消息,执行相应事件处理脚本;当客户端和服务端之间需要传输数据时,将数据封装成消息进行传输。采用本发明,可以满足不同父域的域间跨域操作,还可以确保跨域操作的准确性。
技术领域
本发明涉及计算机应用技术,特别是涉及一种跨域操作的实现方法和装置。
背景技术
目前,企业中通常有多个WEB系统,这些系统分别部署在不同的服务器中,具有不同的域名。系统集成最简单、耦合最低的方式是页面集成。但是,当需要把多个系统通过页面方式集成在一起的时候,不同域的页面脚本之间需要进行跨域交互,以确保集成后页面中的各部分组件的功能正常且页面整体显示具有美观性。
同源策略是浏览器最核心也最基本的安全功能,它是由Netscape提出的,它要求一个源的脚本只能访问来自同一站点的资源。每个html页面都有一个“源”,即该页面来自的服务器域名。两个页面同源时,它们的域名、协议和端口都必须相同。
通过内嵌框架(Iframe)可以实现跨域页面集成,但是,由于浏览器的“同源策略”,页面无法与其所属域之外的域进行通信。同时,浏览器基于安全考虑,js代码不允许跨域操作页面中属于其他域Iframe的内容,防止恶意钓鱼网站,窃取用户信息。具体的跨域操作包含两方面的内容,一方面是来自一个域的脚本获取另一个域的数据;另一方面是一个域的页面和不属于同一个域的Iframe之间的互相访问,包括传递消息、操作dom、响应事件等。
而在实际应用中,当多个页面跨域集成到一起时候,通常需要进行跨域通信,例如:让Iframe大小自适应内容高度,跨域响应事件,跨域切换皮肤或者交换数据。
针对上述两方面的跨域通信需要,目前的跨域操作实现方案是采用将两个不同的域分别升级为父域的方式。在该方案中,不同域的页面执行Document.domain=“父域名”,使两者成为一个域。例如example1.jd.com和example2.jd.com两个不同域名的页面都执行document.domain=jd.com则都升级为父域jd.com,如此,可以规避上述js代码不允许跨域操作的限制,从而可以满足集成页面中的跨域操作需要。
上述方法存在下述问题:
1、只能在具有相同父域的域之间进行跨域,因此,不能满足不同父域的域之间的跨域操作。
2、由于需要修改document.domain,因此,跨域操作需要在两个域均完成升级之后才能正常进行,而在实际应用中不同的页面加载时间不能控制,不能保证document.domain这行代码在跨域通信之前已经被执行,因此,无法确保跨域操作的顺利进行。
由此可见,现有的跨域操作实现方案存在一定的使用局限性,只能在具有相同父域的域之间进行跨域操作,同时,即使在相同父域的域之间进行跨域操作也无法确保跨域操作的准确性。
发明内容
有鉴于此,本发明的主要目的在于提供一种跨域操作的实现方法和装置,可以满足不同父域的域之间的跨域操作,同时还可以确保跨域操作的准确性。
为了达到上述目的,本发明提出的技术方案为:
一种跨域操作的实现方法,包括:
浏览器窗口的服务端在其脚本加载完成后,向所在页面中各iframe中的客户端发送页面初始化消息;所述服务端设于窗口顶层页面中;所述页面初始化消息携带客户端需要注册的跨域监听事件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司,未经北京京东尚科信息技术有限公司;北京京东世纪贸易有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710144232.8/2.html,转载请声明来源钻瓜专利网。
- 上一篇:软件定义存储装置、系统与其存储方法
- 下一篇:数据同步方法、装置及集群控制器