CN110362773A - 跨域通信方法、装置、计算机设备及存储介质 - Google Patents
跨域通信方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110362773A CN110362773A CN201910525850.6A CN201910525850A CN110362773A CN 110362773 A CN110362773 A CN 110362773A CN 201910525850 A CN201910525850 A CN 201910525850A CN 110362773 A CN110362773 A CN 110362773A
- Authority
- CN
- China
- Prior art keywords
- uniform resource
- resource address
- data
- destination
- target data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 75
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000003860 storage Methods 0.000 title claims abstract description 24
- 238000012360 testing method Methods 0.000 claims abstract description 37
- 238000001514 detection method Methods 0.000 claims abstract description 17
- 238000004590 computer program Methods 0.000 claims description 19
- 238000012544 monitoring process Methods 0.000 claims description 8
- 238000012986 modification Methods 0.000 claims description 6
- 230000004048 modification Effects 0.000 claims description 6
- 230000003993 interaction Effects 0.000 abstract description 11
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 7
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 235000014510 cooky Nutrition 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000001360 synchronised effect Effects 0.000 description 3
- 238000012546 transfer Methods 0.000 description 3
- 238000005520 cutting process Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 241001491366 Euphydryas colon Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 230000000052 comparative effect Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013497 data interchange Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000004069 differentiation Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000002708 enhancing effect Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/955—Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
- G06F16/9566—URL specific, e.g. using aliases, detecting broken or misspelled links
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种跨域通信方法、装置、计算机设备及存储介质,所述方法包括:加载初始统一资源地址对应的初始页面,其中,初始页面包括目标数据;按照预设的数据结构将目标数据和初始统一资源地址保存为本地目标文件;若检测到对目标页面的加载操作,则获取与目标页面相对应的目标统一资源地址;对初始统一资源地址和目标统一资源地址进行同源检测,得到检测结果;若检测结果为初始统一资源地址和目标统一资源地址属于不同源地址,则从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面。本发明使得跨域页面数据交互的方式变得更简洁,成本更低,效率更高。
Description
技术领域
本发明涉及信息处理领域,尤其涉及跨域通信方法、装置、计算机设备及存储介质。
背景技术
在互联网高速发展的今天,许多公司由于业务的拓展和分化,会拥有多个域名,且每个域名对应的业务不同,分别部署了不同业务系统。不同业务系统之间进行业务数据交互时,往往需要进行跨浏览器或者跨域名的网页通信。
然而,由于浏览器中的同源策略限制了不同域之间的资源的交互,禁止加载和执行不同源的页面数据或资源。因此,目前许多公司配置了代理服务器,由用户将需要交互的数据上传到代理服务器中,再由代理服务器转发到相应的网页页面,通过代理服务器的方式实现两个网页页面之间的跨域通信。但是,通过配置代理服务器的方式将带来额外的开销,增加了成本,并且在数据传输的过程中需要代理服务器作为中转,导致了跨域通信时,页面之间数据交互出现效率低的问题。
发明内容
本发明实施例提供一种跨域通信方法、装置、计算机设备及存储介质,以解决跨域通信中,页面之间数据交互效率低的问题。
一种跨域通信方法,包括:
加载初始统一资源地址对应的初始页面,其中,所述初始页面包括目标数据;
按照预设的数据结构将所述目标数据和所述初始统一资源地址保存为本地目标文件;
若检测到对目标页面的加载操作,则获取与所述目标页面相对应的目标统一资源地址;
对所述初始统一资源地址和所述目标统一资源地址进行同源检测,得到检测结果;
若所述检测结果为所述初始统一资源地址和所述目标统一资源地址属于不同源地址,则从所述本地目标文件中读取所述目标数据,将所述目标数据作为所述目标页面的待加载数据,并加载所述目标页面。
一种跨域通信装置,包括:
加载模块,用于加载初始统一资源地址对应的初始页面,其中,所述初始页面包括目标数据;
存储模块,用于按照预设的数据结构将所述目标数据和所述初始统一资源地址保存为本地目标文件;
获取模块,用于若检测到对目标页面的加载操作,则获取与所述目标页面相对应的目标统一资源地址;
检测模块,用于对所述初始统一资源地址和所述目标统一资源地址进行同源检测,得到检测结果;
传值模块,用于若所述检测结果为所述初始统一资源地址和所述目标统一资源地址属于不同源地址,则从所述本地目标文件中读取所述目标数据,将所述目标数据作为所述目标页面的待加载数据,并加载所述目标页面。
一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述跨域通信方法。
一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述跨域通信方法。
上述跨域通信方法、装置、计算机设备及存储介质,在加载初始页面时,将需要进行跨域数据交互的目标数据,以及与初始页面相对应的初始统一资源地址,按照预设的数据结构保存为本地目标文件;若检测到启动对需要目标数据的目标页面的加载时,对初始统一资源地址和目标统一资源地址进行同源检测,并针对属于不属于同源地址的目标页面,从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面,从而完成跨域通信;即,使得需要跨域通信的数据以文件形式保存在客户端本地,并以此本地目标文件作为跨域数据交互的媒介,在客户端加载页面的阶段实现跨域数据交互,比使用代理服务器进行跨域页面数据交互的方式更简洁,成本更低,效率更高。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例中跨域通信方法的一应用环境示意图;
图2是本发明一实施例中跨域通信方法的流程图;
图3是本发明一实施例中跨域通信方法中步骤S5的流程图;
图4是本发明一实施例中跨域通信方法中对本地目标文件进行加密和解密的流程图;
图5是本发明一实施例中跨域通信方法中对本地目标文件进行清理的流程图;
图6是本发明一实施例中跨域通信方法中对目标页面进行更新流程图;
图7是本发明一实施例中跨域通信装置的示意图;
图8是本发明一实施例中计算机设备的示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提供的跨域通信方法,可应用在如图1的应用环境中,其中,服务端是提供Web页面的计算机设备,服务端各自具有不同的域名,每个服务端具体可以是服务器或服务器集群;客户端是访问Web页面的计算机终端设备,包括但不限于PC电脑、平板电脑、智能手机或其他智能终端设备;客户端与服务端之间通过网络连接,网络可以是有线网络或无线网络。本发明实施例提供的跨域通信方法应用于客户端。
在一实施例中,如图2所示,提供了一种跨域通信方法,其具体实现流程包括如下步骤:
S1:加载初始统一资源地址对应的初始页面,其中,初始页面包括目标数据。
初始页面,是部署在服务端,并由客户端进行加载的Web页面,初始页面是跨域通信的发起点。初始页面具体可以包括HTML文件,以及从属于该HTML文件的JavaScript脚本文件、CSS文件(Cascading Style Sheets,层叠样式表)。
初始页面有与其唯一对应的初始统一资源地址,其中,统一资源地址,即URL,Uniform Resource Locator,统一资源定位符,是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。例如,一个初始统一资源地址可以表示为“http://test.com/index.html”,其中,“http”为协议名称,即HyperText Transfer Protocol,超文本传输协议;“test.com”为域名;“index.html”代表初始页面为名称为“index”的HTML文件。
目标数据,是需要进行跨域传输的数据;具体包括但不限于图片文件、视音频文件、JavaScript脚本运行中输出的变量等。其中,跨域传输,是指客户端在加载属于不同域名的Web页面时,在Web页面之间传递数据。
目标数据可以通过链接的方式插入到初始页面中。例如,若目标数据为图片文件,则可以在HTML格式的初始页面中通过“<img>”标签引用图片文件的存储地址,使得客户端在加载初始页面时,从存储地址下载该图片文件。
或者,若目标数据为脚本输出的变量,则目标数据可以存储在动态脚本中,或通过客户端加载动态脚本时,实时计算得到。
具体地,用户在客户端的本地浏览器中输入初始统一资源地址,即可加载初始页面,其中,客户端通过初始统一资源地址中的协议与服务端进行通信,例如,协议可以为HTTP协议,然后,客户端从服务端下载初始页面,从而一并获取初始页面中的目标数据。
S2:按照预设的数据结构将目标数据和初始统一资源地址保存为本地目标文件。
本地目标文件,是指存储在客户端本地的文本文件。本地目标文件是目标数据的载体,作为跨域通信中的媒介。
本地目标文件具体可以为cookie文件。其中,cookie文件是由服务器保存在用户客户端的浏览器上的小文本文件,cookie技术是服务器维护客户端上临时数据的一种方式。
本地目标文件还可以为JSON(JavaScript Object Notation,JS对象简谱)文件,即按照JSON格式进行存储的文本文件。其中,JSON是一种轻量级的数据交换格式。JSON文件是以ASCII编码方式存储的,不依赖于操作系统,能被计算机程序快速的读取或生成。
预设的数据结构,是对目标数据和初始统一资源地址的组织形式,即按照特定的格式标准将目标数据和初始统一资源地址进行存储,存储得到的文件即为本地目标文件。
其中,预设的数据结构是出于跨域通信的定制需要,不同服务端之间可以约定本地目标文件中的数据组织形式,以及本地目标文件的文件类型,以便于读取和写入。
以本地目标文件为JSON文件为例,预设的数据结构可以通过定义键值对将目标数据和初始统一资源地址进行存储。一个JSON文件可以表示为:
其中,“URL_1”代表初始统一资源地址的键名;“http://test.com/index.html”代表初始统一资源地址的值;“Data”代表目标数据的键名,其后的大括号中代表目标数据的具体值;“Img_1”和“List”分别代表一个图像目标数据和一个变量目标数据,其后的值分别代表图像目标数据的地址和变量目标数据的值。
或者,客户端采用自定义的数据结构将目标数据和初始统一资源地址进行保存,得到本地目标文件。例如,约定本地目标文件中每行数据所代表的数值,即第一行数据为初始统一资源地址,第二行数据为图像目标数据的地址,第三行为变量目标数据的值,等。
S3:若检测到对目标页面的加载操作,则获取与目标页面相对应的目标统一资源地址。
目标页面,是部署在服务端,并由客户端进行加载的Web页面,目标页面是跨域通信的终点。目标统一资源地址,即目标页面的统一资源地址,与目标页面唯一对应。
目标页面和初始页面分别作为跨域通信的终点和起点;目标统一资源地址和初始统一资源地址分别代表各自Web页面的地址。
具体地,当用户通过客户端的浏览器输入目标统一资源地址时,加载目标页面。以目标统一资源地址中的协议为HTTP协议为例,当浏览器检测有HTTP请求时,即可获取与目标页面相对应的目标统一资源地址。
S4:对初始统一资源地址和目标统一资源地址进行同源检测,得到检测结果。
同源检测,即对初始统一资源地址和目标统一资源地址中的协议、域名和端口号进行一致性比较。
例如,一URL地址为http://test.com/a.html,其中,“http”是协议名称;“test.com”是域名;“a.html”是网页资源存储的路径;由于80端口是http协议的默认端口,则若URL地址中没有显示指定的端口,则连接端口号为80。
具体地,客户端可以对初始统一资源地址和目标统一资源地址进行字符比较,即先根据统一资源地址中的分割符对初始统一资源地址和目标统一资源地址进行字符切分,得到字符数组;然后对字符数组中相应位置的字符进行比较,得到检测结果。其中,统一资源地址中的分割符,即冒号符号“:”、单斜杠符号“/”和双斜杠符号“//”。
举例来说,若初始统一资源地址为“http://test.com/a.html”,目标统一资源地址为“https://test.com/a.html”,则切分得到的字符数组分别为(http、test.com、a.html)和(https、test.com、a.html);客户端对字符数组中相应位置的字符进行比较,即可确定初始统一资源地址和目标统一资源地址中的协议不同,域名相同,端口号相同。
S5:若检测结果为初始统一资源地址和目标统一资源地址属于不同源地址,则从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面。
不同源地址,是指初始统一资源地址和目标统一资源地址中的协议、域名或端口号有任一一个不相同;不同源地址代表初始页面和目标页面分属于不同的域。
目标页面中的待加载数据,即需要进行跨域传输的数据,亦即目标数据。例如,若目标页面为HTML文件,则其中的“<img>”标签的值可以为待加载数据;若目标页面为JavaScript脚本文件,则其中的变量可以为待加载数据,即依赖于初始页面传递的数值。
具体地,若检测结果中,初始统一资源地址和目标统一资源地址中的协议名称、域名或端口号有任一不相同的,则初始统一资源地址和目标统一资源地址属于不同源地址;此时,客户端可以通过执行目标页面中的动态脚本从本地目标文件中读取目标数据,然后将目标数据插入到目标页面中的标签下,或使用目标数据对动态脚本中的变量进行赋值,从而使得在加载目标页面时获取需要跨域传输的目标数据。
其中,客户端可以通过多种方式触发动态脚本,执行相关操作。
例如,若动态脚本部署在HTML文件中“<body>”标签之前,则客户端加载HTML文件时,根据从上到下的加载顺序,将先加载动态脚本,然后执行动态脚本实现从本地目标文件中读取目标数据,并将目标数据插入到目标页面需要的位置。
若动态脚本部署在HTML文件中的其他脚本函数中,则当用户在客户端上对目标页面作出如提交表单、点击按钮、滑动鼠标等操作时,也将触发动态脚本。
在本实施例中,在加载初始页面时,将需要进行跨域数据交互的目标数据,以及与初始页面相对应的初始统一资源地址,按照预设的数据结构保存为本地目标文件;若检测到启动对需要目标数据的目标页面的加载时,对初始统一资源地址和目标统一资源地址进行同源检测,并针对属于不属于同源地址的目标页面,从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面,从而完成跨域通信;即,使得需要跨域通信的数据以文件形式保存在客户端本地,并以此本地目标文件作为跨域数据交互的媒介,在客户端加载页面的阶段实现跨域数据交互,比使用代理服务器进行跨域页面数据交互的方式更简洁,成本更低,效率更高。
进一步地,在一实施例中,如图3所示,针对步骤S5,即若检测结果为初始统一资源地址和目标统一资源地址属于不同源地址,则从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面,具体包括如下步骤:
S51:若检测结果为初始统一资源地址和目标统一资源地址属于不同源地址,则将目标页面的标识信息与预设访问列表中授信页面的标识信息进行比较,得到比较结果。
预设访问列表是存储不同的域之间的网页的信任关系的数据表,即预设访问列表中形成信任关系的两个页面才可以进行跨域通信。预设访问列表部署在预设的服务端,并以外部链接的形式引用在目标页面中。例如,预设访问列表的URL地址在HTML文件中以“<link>”标签进行引用。
授信页面,是能够与初始页面进行跨域通信的Web页面。
举例来说,预设访问列表中包含页面A和B,两者之间是信任关系,其中,A为初始页面,则B为授信页面。具体地,彼此信任的页面之间不仅可以是一对一的信任关系,也可以是一对多,多对一或多对多的信任关系。
标识信息,是用于标识一个预设访问列表中的页面。标识信息包括但不限于域名名称、页面的URL地址等。
以域名名称为例,若预设访问列表中初始页面的标识信息为二级域名“test.com”,授信页面的标识信息为三级域名“a.test.com”,则代表三级域名“a.test.com”下的页面与二级域名“test.com”下的页面是信任关系,两个域名下的所有页面可以彼此实现跨域通信。
具体地,客户端对预设访问列表中授信页面的标识信息进行遍历,并一一与目标页面的标识信息进行字符比较,得到比较结果。
S52:若比较结果为目标页面的标识信息与授信页面的标识信息一致,则从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面。
当目标页面的标识信息与授信页面的标识信息一致,则代表目标页面可与初始页面进行跨域通信,客户端从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面,其具体读取过程与步骤S5中相同,此处不再赘述。
在本实施例中,使用包含页面之间信任关系的预设访问列表对初始统一资源地址和目标统一资源地址属于不同源地址的目标页面进行再次过滤,缩小了能进行跨域通信的页面的范围,进一步加强了跨域通信的安全性。
进一步地,在一实施例中,如图4所示,针对步骤S2,即按照预设的数据结构将目标数据和初始统一资源地址保存为本地目标文件,具体包括如下步骤:
S21:按照预设的数据结构将目标数据和初始统一资源地址保存为文本格式的中间文件。
文本格式的中间文件,即包括但不限于ASCII码、Unicode码的文件。其中,ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言;Unicode码是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,以满足跨语言、跨平台进行文本转换、处理的要求。
具体地,客户端按照预设的数据结构对目标数据和初始统一资源地址进行保存时,可以选用TXT后缀的文件进行存储,得到文本格式的中间文件。
S22:根据预设加密方式,对中间文件进行加密,得到密文文件,并将密文文件作为本地目标文件。
预设加密方式,可以包括对称加密算法和非对称加密算法。其中,对称加密算法包括但不限于AES、DES等;非对称加密算法包括但不限于RSA、Elgamal等。
具体地,客户端可以通过初始页面中的动态脚本实现加密操作,对中间文件进行加密存储,以得到的密文文件作为本地目标文件。
在步骤S5中,“从本地目标文件中读取目标数据”的过程,包括如下步骤:
S53:根据与预设加密方式相对应的解密方式对本地目标文件进行解密,得到目标数据。
具体地,客户端可以通过目标页面中的动态脚本实现解密操作,对本地目标文件进行解密,得到目标数据。其中,目标页面中的动态脚本与初始页面中的动态脚本约定好加密和解密的算法和密钥,使得客户端在加载目标页面时,目标页面中的动态脚本可以按照与预设加密方式相对应的解密方式进行解密。
在本实施例中,客户端对文本格式的中间文件进行加密,将得到的密文文件作为本地目标文件,并在加载目标文件的过程中,使用与预设加密方式相应的解密方式对本地目标文件进行解密,然后读取得到目标数据,使得本地目标文件在客户端以密文形式存储,可以防止对本地目标文件的非法读取,降低信息泄露的风险,进一步加强了安全性。
进一步地,在一实施例中,在步骤S5之后,即在若检测结果为初始统一资源地址和目标统一资源地址属于不同源地址,则从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面的步骤之后,跨域通信方法还包括步骤:
S6:若目标数据发生变更,则将当前时间和目标统一资源地址作为操作记录写入到本地目标文件中,其中,操作记录用于记载目标数据的变更信息。
目标数据发生变更,是指用户对目标页面进行操作,使得目标数据的值发送变化。具体地,目标数据发生变更包括对数据的修改、删除或新增。
当前时间,是指客户端的系统时间。
具体地,若目标数据发生变更,客户端在对本地目标文件中的目标数据进行更新的同时,获取当前系统时间,并将当前系统时间和目标统一资源地址一并作为操作记录写入到本地目标文件中,以记载当前客户端对目标数据的修改记录。
举例来说,在一个跨域传输图片文件的应用场景中,目标数据为一幅图片,当客户端对图片进行了修改,此时,客户端需要对本地目标文件进行同步更新,并将更新的结果再次写入到本地目标文件中;其中,更新的内容包括当前系统时间和目标统一资源地址,即,客户端以当前系统时间作为客户端对图片的修改时间,以目标统一资源地址作为客户端的标识信息之一,代表对图片修改的处理者。因此,其他客户端可以从中获知图片被修改的历史信息。
可以理解地,在拥有更多客户端的跨域通信应用场景中,包括客户端A、客户端B、客户端C、客户端D、客户端E等等;其中,每个客户端既可以作为跨域通信的发起端,也可能作为跨域通信的接收端;若客户端A需要将目标数据发送到客户端E,中间需要依次经过客户端B、客户端C和客户端D,则客户端B、客户端C或客户端D,均可以对目标数据进行修改。因此,操作记录用以记录哪个客户端在何时有对目标数据进行修改,有利于对目标数据的变更进行跟踪。
在本实施例中,当目标数据发生变更时,客户端将当前时间和当前目标统一资源地址作为操作记录写入到本地目标文件中,实现了对目标数据变更的日志记录功能,有利于追溯跨域通信中出现信息丢失或错误,而无从查找的问题,提高了跨域通信的可维护性。
进一步地,在一实施例中,如图5所示,在步骤S6之后,在若目标数据发生变更,则将当前时间和目标统一资源地址作为操作记录写入到本地目标文件中的步骤之后,跨域通信方法还包括如下步骤:
S7:检测本地目标文件所占存储空间的大小,得到本地目标文件的文件大小。
具体地,客户端可以通过客户端所属操作系统的API(Application ProgrammingInterface,应用程序编程接口)接口获取本地目标文件所占存储空间的大小。例如,若客户端为Linux系统,则可以直接通过“du-b filepath”命令获取本地目标文件的大小,其中,参数b代表文件所占的字节数,参数filepath代表本地目标文件的文件路径。
S8:将本地目标文件的文件大小与预设阈值进行比较,若本地目标文件的文件大小超过预设阈值,则根据本地目标文件中当前时间的顺序删除至少一条操作记录。
预设阈值,是衡量本地目标文件大小的临界值。例如,预设阈值可以为200K字节。
可以理解地,随着频繁的跨域通信,客户端上可能存储有多个本地目标文件,当本地目标文件的文件大小超过预设阈值,则代表本地目标文件占用过多存储空间,给客户端带来存储负担,因此,需要删除本地目标文件中的冗余信息,以节省存储空间。
具体地,客户端将本地目标文件的文件大小与预设阈值进行比较,若本地目标文件的文件大小超过预设阈值,则客户端可以根据超出预设阈值的多少,确定删除操作记录的数量。
例如,假设100条操作记录对应1K字节,则若本地目标文件的文件大小超过预设阈值50K,则客户端需要删除5000条操作记录,即客户端从本地目标文件中最早的“当前时间”开始,删除其后的5000条操作记录。
在本实施例中,客户端检测本地目标文件的文件大小,对文件大小超过预设阈值的本地目标文件进行缩减,删除冗余信息,减轻客户端的存储负担,节省存储空间。
进一步地,在一实施例中,如图6所示,在步骤S5之后,即若检测结果为初始统一资源地址和目标统一资源地址属于不同源地址,则从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面之后,跨域通信方法,还包括如下步骤:
S9:对本地目标文件中的预设状态标志进行监听,若预设状态标志发生变更,则获取目标数据,并根据目标数据对目标页面进行更新。
根据目标数据对目标页面进行更新,是指客户端在访问目标页面时,目标页面需要根据初始页面的状态进行更新,达到与初始页面相对应的状态,即一种数据同步的过程。例如,在初始页面中对图片进行了修改,需要将修改步骤传递给目标页面,以便于目标页面在之前修改步骤的基础上继续修改。
预设状态标志,是用于不同域页面之间数据同步的状态变量。具体地,预设状态标志可以是一个字符或数字。例如,若预设状态标志为数字,则0代表初始值,1代表数据更新状态;即,当预设状态标志位1时,目标页面需要根据目标数据进行页面更新。预设状态标志可以位于本地目标文件开头2个字节,以便于快速获取。
具体地,客户端可以使用自定义的监听脚本对本地目标文件进行监听。其中,自定义的监听脚本可以是在目标页面中引用的JavaScript脚本。当监听脚本读取到本地目标文件的头部字节时,即可获取预设状态标志的值。
S10:若目标页面更新完成,则将预设状态标志恢复成初始值。
具体地,客户端在根据目标数据对目标页面进行更新,当目标页面更新完成之后,将预设状态标志恢复成初始值,并重新写入到本地目标文件中,以便进行下次监听。
在本实施例中,客户端对本地目标文件中的预设状态标志进行监听,并根据预设状态标志的变化,对目标页面进行更新,实现了不同域的页面之间进行实时数据同步,加快了跨域通信的数据传输效率。
进一步地,在一实施例中,针对步骤S9,即对本地目标文件中的预设状态标志进行监听,具体包括如下步骤:
S91:通过定时任务对本地目标文件中的预设状态标志进行循环监听。
定时任务,具体可以包括定时器。
客户端可以通过定时器对本地目标文件进行循环监听。
其中,定时器,可以是JavaScript脚本实现循环操作的一种实现方式,以函数setInterval()表示。通过定时器可以设置读取预设状态标志的时间周期,例如,预设的时间具体可以是100ms,也可以是200ms等,即代表每隔时间周期对预设状态标志进行读取。
具体地,根据对预设状态标志的值进行的约定,如0代表初始状态,1代表更新状态,当客户端监听到预设状态标志为1时,则获取目标数据,根据目标数据对目标页面进行更新,并按照定时器的时间周期,持续对本地目标文件中的预设状态标志进行监听。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
在一实施例中,提供一种跨域通信装置,该跨域通信装置与上述实施例中跨域通信方法一一对应。如图7所示,该跨域通信装置包括加载模块71、存储模块72、数据获取模块73、检测模块74和传值模块75。各功能模块详细说明如下:
加载模块71,用于加载初始统一资源地址对应的初始页面,其中,初始页面包括目标数据;
存储模块72,用于按照预设的数据结构将目标数据和初始统一资源地址保存为本地目标文件;
数据获取模块73,用于若检测到对目标页面的加载操作,则获取与目标页面相对应的目标统一资源地址;
检测模块74,用于对初始统一资源地址和目标统一资源地址进行同源检测,得到检测结果;
传值模块75,用于若检测结果为初始统一资源地址和目标统一资源地址属于不同源地址,则从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面。
进一步地,传值模块75,包括:
比较子模块751,用于若检测结果为初始统一资源地址和目标统一资源地址属于不同源地址,则将目标页面的标识信息与预设访问列表中授信页面的标识信息进行比较,得到比较结果;
读取子模块752,用于若比较结果为目标页面的标识信息与授信页面的标识信息一致,则从本地目标文件中读取目标数据,将目标数据作为目标页面的待加载数据,并加载目标页面。
进一步地,存储模块72,包括:
预处理子模块721,用于按照预设的数据结构将目标数据和初始统一资源地址保存为文本格式的中间文件;
加密子模块722,用于根据预设加密方式,对中间文件进行加密,得到密文文件,并将密文文件作为本地目标文件;
传值模块75,还包括:
解密子模块753,用于根据与预设加密方式相对应的解密方式对本地目标文件进行解密,得到目标数据。
进一步地,跨域通信装置,还包括:
操作记录模块76,用于若目标数据发生变更,则将当前时间和目标统一资源地址作为操作记录写入到本地目标文件中,其中,操作记录用于记载目标数据的变更信息。
进一步地,跨域通信装置,还包括:
文件检测模块77,用于检测本地目标文件所占存储空间的大小,得到本地目标文件的文件大小;
记录清理模块78,用于将本地目标文件的文件大小与预设阈值进行比较,若本地目标文件的文件大小超过预设阈值,则根据本地目标文件中当前时间的顺序删除至少一条操作记录。
进一步地,跨域通信装置,还包括:
监听模块79,用于对本地目标文件中的预设状态标志进行监听,若预设状态标志发生变更,则获取目标数据,并根据目标数据对目标页面进行更新;
恢复模块710,用于若目标页面更新完成,则将预设状态标志恢复成初始值。
进一步地,监听模块79,包括:
循环监听子模块791,用于通过定时任务对本地目标文件中的预设状态标志进行循环监听。
关于跨域通信装置的具体限定可以参见上文中对于跨域通信方法的限定,在此不再赘述。上述跨域通信装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图8所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部服务器通过网络连接通信。该计算机程序被处理器执行时以实现一种跨域通信方法。
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中跨域通信方法的步骤,例如图2所示的步骤S1至步骤S5。或者,处理器执行计算机程序时实现上述实施例中跨域通信装置的各模块/单元的功能,例如图7所示模块71至模块75的功能。为避免重复,这里不再赘述。
在一实施例中,提供一计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例中跨域通信方法,或者,该计算机程序被处理器执行时实现上述装置实施例中跨域通信装置中各模块/单元的功能。为避免重复,这里不再赘述。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本发明所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
Claims (10)
1.一种跨域通信方法,其特征在于,所述跨域通信方法包括:
加载初始统一资源地址对应的初始页面,其中,所述初始页面包括目标数据;
按照预设的数据结构将所述目标数据和所述初始统一资源地址保存为本地目标文件;
若检测到对目标页面的加载操作,则获取与所述目标页面相对应的目标统一资源地址;
对所述初始统一资源地址和所述目标统一资源地址进行同源检测,得到检测结果;
若所述检测结果为所述初始统一资源地址和所述目标统一资源地址属于不同源地址,则从所述本地目标文件中读取所述目标数据,将所述目标数据作为所述目标页面的待加载数据,并加载所述目标页面。
2.如权利要求1所述的跨域通信方法,其特征在于,所述若所述检测结果为所述初始统一资源地址和所述目标统一资源地址属于不同源地址,则从所述本地目标文件中读取所述目标数据,将所述目标数据作为所述目标页面的待加载数据,并加载所述目标页面,包括:
若所述检测结果为所述初始统一资源地址和所述目标统一资源地址属于不同源地址,则将所述目标页面的标识信息与预设访问列表中授信页面的标识信息进行比较,得到比较结果;
若所述比较结果为所述目标页面的标识信息与所述授信页面的标识信息一致,则从所述本地目标文件中读取所述目标数据,将所述目标数据作为所述目标页面的待加载数据,并加载所述目标页面。
3.如权利要求1所述的跨域通信方法,其特征在于,所述按照预设的数据结构将所述目标数据和所述初始统一资源地址保存为本地目标文件,包括:
按照预设的数据结构将所述目标数据和所述初始统一资源地址保存为文本格式的中间文件;
根据预设加密方式,对所述中间文件进行加密,得到密文文件,并将所述密文文件作为所述本地目标文件;
所述从所述本地目标文件中读取所述目标数据,包括:
根据与所述预设加密方式相对应的解密方式对所述本地目标文件进行解密,得到所述目标数据。
4.如权利要求1所述的跨域通信方法,其特征在于,所述若所述检测结果为所述初始统一资源地址和所述目标统一资源地址属于不同源地址,则从所述本地目标文件中读取所述目标数据,将所述目标数据作为所述目标页面的待加载数据,并加载所述目标页面之后,所述跨域通信方法,还包括:
若所述目标数据发生变更,则将当前时间和所述目标统一资源地址作为操作记录写入到所述本地目标文件中,其中,所述操作记录用于记载所述目标数据的变更信息。
5.如权利要求4所述的跨域通信方法,其特征在于,在所述若所述目标数据发生变更,则将当前时间和所述目标统一资源地址作为操作记录写入到所述本地目标文件中之后,所述跨域通信方法,还包括:
检测所述本地目标文件所占存储空间的大小,得到所述本地目标文件的文件大小;
将所述本地目标文件的文件大小与预设阈值进行比较,若所述本地目标文件的文件大小超过所述预设阈值,则根据所述本地目标文件中所述当前时间的顺序删除至少一条所述操作记录。
6.如权利要求1所述的跨域通信方法,其特征在于,所述若所述检测结果为所述初始统一资源地址和所述目标统一资源地址属于不同源地址,则从所述本地目标文件中读取所述目标数据,将所述目标数据作为所述目标页面的待加载数据,并加载所述目标页面之后,所述跨域通信方法,还包括:
对所述本地目标文件中的预设状态标志进行监听,若所述预设状态标志发生变更,则获取所述目标数据,并根据所述目标数据对所述目标页面进行更新;
若所述目标页面更新完成,则将所述预设状态标志恢复成初始值。
7.如权利要求6所述的跨域通信方法,其特征在于,所述对所述本地目标文件中的预设状态标志进行监听,包括:
通过定时任务对所述本地目标文件中的预设状态标志进行循环监听。
8.一种跨域通信装置,其特征在于,所述跨域通信装置,包括:
加载模块,用于加载初始统一资源地址对应的初始页面,其中,所述初始页面包括目标数据;
存储模块,用于按照预设的数据结构将所述目标数据和所述初始统一资源地址保存为本地目标文件;
获取模块,用于若检测到对目标页面的加载操作,则获取与所述目标页面相对应的目标统一资源地址;
检测模块,用于对所述初始统一资源地址和所述目标统一资源地址进行同源检测,得到检测结果;
传值模块,用于若所述检测结果为所述初始统一资源地址和所述目标统一资源地址属于不同源地址,则从所述本地目标文件中读取所述目标数据,将所述目标数据作为所述目标页面的待加载数据,并加载所述目标页面。
9.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述跨域通信方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述跨域通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910525850.6A CN110362773B (zh) | 2019-06-18 | 2019-06-18 | 跨域通信方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910525850.6A CN110362773B (zh) | 2019-06-18 | 2019-06-18 | 跨域通信方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110362773A true CN110362773A (zh) | 2019-10-22 |
CN110362773B CN110362773B (zh) | 2023-11-03 |
Family
ID=68216690
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910525850.6A Active CN110362773B (zh) | 2019-06-18 | 2019-06-18 | 跨域通信方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110362773B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343268A (zh) * | 2020-02-24 | 2020-06-26 | 北京达佳互联信息技术有限公司 | 多媒体资源的下载方法、装置、服务器和电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080033917A1 (en) * | 2006-08-04 | 2008-02-07 | Chacha Search, Inc. | Macro programming for resources |
CN104301379A (zh) * | 2014-08-28 | 2015-01-21 | 北京奇虎科技有限公司 | 一种网页跨域通信方法和装置 |
CN108256069A (zh) * | 2018-01-17 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 一种页面跨域访问的方法和装置 |
CN108932238A (zh) * | 2017-05-23 | 2018-12-04 | 北京金山云网络技术有限公司 | 一种跨域通信方法及装置 |
CN109213946A (zh) * | 2017-06-30 | 2019-01-15 | 北京国双科技有限公司 | iframe跨域高度自适应方法及装置 |
CN109408750A (zh) * | 2018-09-26 | 2019-03-01 | 中国平安财产保险股份有限公司 | 页面显示方法、装置、计算机设备和存储介质 |
-
2019
- 2019-06-18 CN CN201910525850.6A patent/CN110362773B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080033917A1 (en) * | 2006-08-04 | 2008-02-07 | Chacha Search, Inc. | Macro programming for resources |
CN104301379A (zh) * | 2014-08-28 | 2015-01-21 | 北京奇虎科技有限公司 | 一种网页跨域通信方法和装置 |
CN108932238A (zh) * | 2017-05-23 | 2018-12-04 | 北京金山云网络技术有限公司 | 一种跨域通信方法及装置 |
CN109213946A (zh) * | 2017-06-30 | 2019-01-15 | 北京国双科技有限公司 | iframe跨域高度自适应方法及装置 |
CN108256069A (zh) * | 2018-01-17 | 2018-07-06 | 阿里巴巴集团控股有限公司 | 一种页面跨域访问的方法和装置 |
CN109408750A (zh) * | 2018-09-26 | 2019-03-01 | 中国平安财产保险股份有限公司 | 页面显示方法、装置、计算机设备和存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111343268A (zh) * | 2020-02-24 | 2020-06-26 | 北京达佳互联信息技术有限公司 | 多媒体资源的下载方法、装置、服务器和电子设备 |
CN111343268B (zh) * | 2020-02-24 | 2022-03-25 | 北京达佳互联信息技术有限公司 | 多媒体资源的下载方法、装置、服务器和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110362773B (zh) | 2023-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108829727B (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
US11569982B2 (en) | Blockchain compression using summary and padding blocks | |
CN109522270A (zh) | 基于区块链的文件存读方法、电子装置及可读存储介质 | |
CN110598442A (zh) | 一种敏感数据自适应的脱敏方法、系统 | |
CN102882974B (zh) | 一种通过网站识别版本号节省网站访问资源的方法 | |
US20100198846A1 (en) | Method for order invariant correlated encrypting of data and sql queries for maintaining data privacy and securely resolving customer defects | |
JP2018506936A (ja) | ネットワークにおいてコンテンツを配信するエンドツーエンドソリューションのための方法及びシステム | |
CN110414249B (zh) | 信息处理方法、装置、存储介质及电子设备 | |
US11489660B2 (en) | Re-encrypting data on a hash chain | |
CN110149323B (zh) | 一种具有千万级tps合约处理能力的处理装置 | |
US20160134495A1 (en) | Logging device and log aggregation device | |
CN114041134A (zh) | 用于基于区块链的安全存储的系统和方法 | |
CN108280761A (zh) | 增信方分配方法、装置、计算机设备和存储介质 | |
CN109885990A (zh) | 脚本管理方法 | |
CN110502602A (zh) | 数据存储方法、装置、设备和计算机存储介质 | |
US11360966B2 (en) | Information processing system and method of controlling information processing system | |
CN105426348A (zh) | 一种可扩展标记语言xml文件的生成方法、装置和系统 | |
CN113746882A (zh) | 一种用户会话信息存储方法、装置及电子设备 | |
CN110598193B (zh) | 一种审计离线文档管理系统 | |
CN116662941A (zh) | 信息加密方法、装置、计算机设备和存储介质 | |
CN112241298A (zh) | 页面显示方法及装置、存储介质、电子装置 | |
CN112100689B (zh) | 一种可信数据处理方法、装置及设备 | |
CN110362773A (zh) | 跨域通信方法、装置、计算机设备及存储介质 | |
CN108062713B (zh) | 年金数据文件获取方法、装置、计算机设备及存储介质 | |
CN109522060A (zh) | 业务场景的还原方法及终端设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |