网络客户端跨域请求数据的实现方法、装置及终端制造方法及图纸

技术编号:9620704 阅读:150 留言:0更新日期:2014-01-30 09:38
本公开是关于一种网络客户端跨域请求数据的实现方法、装置及终端,该实现方法包括:当检测到从第一域向第二域请求数据的数据请求时,根据数据请求信息生成哈希值,并替换第一域的网络页面嵌入式框架的哈希值;其中,所述嵌入式框架为预先在第一域的网络页面下创建,且嵌入式框架的源文件指向第二域的静态超文本标记语言HTML页面;将第二域返回的被请求数据存储在所述嵌入式框架的特定变量中;通过访问嵌入式框架的特定变量获取来自所述第二域的被请求数据,其中,特定变量的值不随浏览器网页地址的变化而变化、且直到所述浏览器会话结束时消除。该方法发送的数量不受限制,实现过程简单,平台兼容性较好,可以很好的跟踪整个请求的过程。

Method, device and terminal for realizing cross domain request data of network client

This is a page open method, device and terminal to realize cross domain requests a data network client, the implementation method comprises the following steps: when the detected data request request data from the first to the second domain domain, according to the data request information to generate hash hash values, and replace the web page embedded framework first domain value; among them, the embedded framework is pre created in the first domain web page under static and embedded framework source files to the second domain of hypertext markup language HTML page; second domain returns the requested data stored in the embedded framework of specific variables; obtaining from the second domains of the requested data, through specific variable access embedded framework in which the values of certain variables did not change with the browser page address changes, and until the end of the browser session Eliminate. The number of the method is unlimited, the implementation process is simple, the platform compatibility is good, and the whole request process can be well tracked.

【技术实现步骤摘要】
网络客户端跨域请求数据的实现方法、装置及终端
本公开涉及网络
,尤其涉及网络客户端跨域请求数据的实现方法、装置及终端。
技术介绍
随着互联网技术的发展,各个公司、各个团体之间的项目合作变得越来越紧密,数据共享和数据互通变得越来越多。与此同时,跨域数据访问(各个公司之间的网站,一般不会共享同一个域名)变得越来越频繁。跨域数据访问方案也是层出不穷,但是多数都要借助于服务器来完成。目前实现跨域数据访问的方案有如下几种:使用JS0NP(JS0N with Padding,资料格式json的一种使用模式)来实现跨域数据访问:JSONP可以实现跨父域的HTTP (Hyper Text Transport Protocol,超文本传送协议)GET (一种表示获取的函数命令)请求,原理是在页面中插入一个script HTML (HypertextMarkup Language,超文本标记语言)IFRAME (嵌入式框架),并设置IFRAME的src (源文件)属性到需要请求数据的服务器地址。数据返回时,数据被当作一个javascript变量传递回来被客户端获取。但是,使用JSONP方案来实现跨域数据访问,不能对服务器执行一个HTTPPOST请求,也就是对于这种方案来说,能够发送的数据量是有限的。同时由于是使用一个Script HTML IFRAME来发送GET请求,请求过程中服务器的状态不能被获取,只能得到最终的返回结果。使用服务器转发来实现跨域数据访问:使用服务器转发规避了网络客户端不能很好实现跨域的问题。该方案通过一个域下的服务器向另一个域下的服务器发送请求(服务器之间发送请求不受域的限制),从而实现跨越数据访问。但是,这种方案最大的问题在于提高了项目合作的门槛和复杂度,不仅需要客户端工程师参与到项目中,还需要服务器的工程师参与。使用HTML5技术来实现跨域访问:在HTML5中可以使用xmlHttpRequest2 (一种接口函数)或者PostMessage (—种接口函数)接口实现数据跨越请求。通过创建一个xmlHttpRequest2对象,可以像传统的ajax (使用脚本中内置对象发送异步请求)方式一样,向服务器请求数据,并请求数据,但前提是服务器返回的数据头中必须设置Access-Control-Allow-Origin (Httpheader 中的一个 key)的值为 * (代表没有限制)或者设置为可以访问的该服务器数据的域。这种方案受限于用户所使用的浏览器,如果用户使用的浏览器不支持HTML5技术,那么这种方案就会完全失效,这种方案的平台兼容性不容乐观,目前只被部分移动端网站所支持(移动端浏览器对HTML5支持通常较为友好)。可见,目前的实现跨域数据访问的方案存在发送的数据量有限、实现难度较大、平台兼容性较差的问题。
技术实现思路
本公开提供了一种网络客户端跨域请求数据的实现方法、装置及终端,用以解决目前的实现跨域数据访问的方案存在发送的数据量有限、实现难度较大、平台兼容性较差的问题。一方面,本公开提供了一种网络客户端跨域请求数据的实现方法,包括:当检测到从第一域向第二域请求数据的数据请求时,根据数据请求信息生成哈希值,并替换第一域的网络页面嵌入式框架的哈希值;其中,所述嵌入式框架为预先在所述第一域的网络页面下创建,且所述嵌入式框架的源文件指向所述第二域的静态超文本标记语言HTML页面;将所述第二域返回的被请求数据存储在所述嵌入式框架的特定变量中;通过访问所述嵌入式框架的一特定变量获取来自所述第二域的被请求数据,其中,所述特定变量的值不随浏览器网页地址的变化而变化、且直到所述浏览器会话结束时消除。所述根据数据请求信息生成哈希值,并替换第一域的网络页面嵌入式框架的哈希值,包括:根据数据请求信息,通过脚本动态生成哈希值;将生成的哈希值替换第一域的网络页面嵌入式框架的哈希值。本公开还提供了一种网络客户端跨域请求的实现方法,包括:获取第一域的网络页面嵌入式框架的变化后的哈希值,所述变化后的哈希值包括数据请求信息,所述第一域为请求数据方所在域;根据所述数据请求信息向第二域请求数据;接收所述第二域返回的被请求数据,并将所述被请求数据保存在所述第一域的网络页面嵌入式框架的一特定变量中,所述特定变量的值不随浏览器网页地址的变化而变化、且直到所述浏览器会话结束时消除;将所述第一域的网络页面嵌入式框架的页面地址设置为所述第一域的静态HTML页面地址。所述获取第一域的网络页面嵌入式框架的变化后的哈希值,包括:监听哈希变化事件;当监听到所述第一域的网络页面嵌入式框架的哈希值发生变化时,获取变化后的哈希值。所述获取第一域的网络页面嵌入式框架的变化后的哈希值,包括:按预设周期监测所述第一域的网络页面嵌入式框架的哈希值;当监测到所述哈希值发生变化时,获取变化后的哈希值。所述根据所述数据请求信息向第二域请求数据,包括:建立异步数据请求对象,以AJAX的方式向所述第二域的服务器请求数据。另一方面,本公开提供了一种网络客户端跨域请求的实现装置,包括:变更模块,用于当检测到从第一域向第二域请求数据的数据请求时,根据数据请求信息生成哈希值,并替换第一域的网络页面嵌入式框架的哈希值;其中,所述嵌入式框架为预先在所述第一域的网络页面下创建,且所述嵌入式框架的源文件指向所述第二域的静态超文本标记语目HTML页面;存储模块,用于将所述第二域返回的被请求数据存储在所述嵌入式框架的特定变量中;第一获取模块,用于通过访问所述嵌入式框架的特定变量获取来自所述第二域的被请求数据,其中,所述特定变量的值不随浏览器网页地址的变化而变化、且直到所述浏览器会话结束时消除。所述变更模块包括:生成单元,用于根据数据请求信息,通过脚本动态生成哈希值;变更单元,用于将生成的哈希值替换第一域的网络页面嵌入式框架的哈希值。本公开还提供了一种网络客户端跨域请求的实现装置,包括:第二获取模块,用于获取第一域的网络页面嵌入式框架的变化后的哈希值,所述变化后的哈希值包括数据请求信息,所述第一域为请求数据方所在域;请求模块,用于根据所述数据请求信息向第二域请求数据;处理模块,用于接收所述第二域返回的被请求数据,并将所述被请求数据保存在所述第一域的网络页面嵌入式框架的一特定变量中,所述特定变量的值不随浏览器网页地址的变化而变化、且直到所述浏览器会话结束时消除;设置模块,用于将所述第一域的网络页面嵌入式框架的页面地址设置为所述第一域的静态HTML页面地址。[0041 ] 所述第二获取模块包括:监听单元,用于监听哈希变化事件;第一获取单元,用于在所述监听单元监听到第一域的网络页面嵌入式框架的哈希值发生变化时,获取变化后的哈希值。所述第二获取模块包括:监测单元,用于按预设周期监测所述第一域的网络页面嵌入式框架的哈希值;第二获取单元,用于当所述监测单元监测到所述哈希值发生变化时,获取变化后的哈希值。所述请求模块包括:请求单元,用于建立异步数据请求对象,以AJAX的方式向所述第二域的服务器请求数据。一种终端设备,终端设备包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于本文档来自技高网
...

【技术保护点】
一种网络客户端跨域请求数据的实现方法,其特征在于,包括:当检测到从第一域向第二域请求数据的数据请求时,根据数据请求信息生成哈希值,并替换第一域的网络页面嵌入式框架的哈希值;其中,所述嵌入式框架为预先在所述第一域的网络页面下创建,且所述嵌入式框架的源文件指向所述第二域的静态超文本标记语言HTML页面;将所述第二域返回的被请求数据存储在所述嵌入式框架的特定变量中;通过访问所述嵌入式框架的特定变量获取来自所述第二域的被请求数据,其中,所述特定变量的值不随浏览器网页地址的变化而变化、且直到所述浏览器会话结束时消除。

【技术特征摘要】
1.一种网络客户端跨域请求数据的实现方法,其特征在于,包括: 当检测到从第一域向第二域请求数据的数据请求时,根据数据请求信息生成哈希值,并替换第一域的网络页面嵌入式框架的哈希值;其中,所述嵌入式框架为预先在所述第一域的网络页面下创建,且所述嵌入式框架的源文件指向所述第二域的静态超文本标记语言HTML页面; 将所述第二域返回的被请求数据存储在所述嵌入式框架的特定变量中; 通过访问所述嵌入式框架的特定变量获取来自所述第二域的被请求数据,其中,所述特定变量的值不随浏览器网页地址的变化而变化、且直到所述浏览器会话结束时消除。2.如权利要求1所述的实现方法,其特征在于,所述根据数据请求信息生成哈希值,并替换第一域的网络页面嵌入式框架的哈希值,包括: 根据数据请求信息,通过脚本动态生成哈希值; 将生成的哈希值替换第一域的网络页面嵌入式框架的哈希值。3.—种网络客户端跨域请求的实现方法,其特征在于,包括: 获取第一域的网络页面嵌入式框架的变化后的哈希值,所述变化后的哈希值包括数据请求信息,所述第一域为请求数据方所在域; 根据所述数据请求信息向第二域请求数据; 接收所述第二域返回的被请求数据,并将所述被请求数据保存在所述第一域的网络页面嵌入式框架的特定变量中,所述特定变量的值不随浏览器网页地址的变化而变化、且直到所述浏览器会话结束时消除; 将所述第一域的网络页面嵌入式框架的页面地址设置为所述第一域的静态HTML页面地址。4.如权利要求3所述的实现方法,其特征在于,所述获取第一域的网络页面嵌入式框架的变化后的哈希值,包括: 监听哈希变化事件; 当监听到所述第一域的网络页面嵌入式框架的哈希值发生变化时,获取变化后的哈希值。5.如权利要求3所述的实现方法,其特征在于,所述获取第一域的网络页面嵌入式框架的变化后的哈希值,包括: 按预设周期监测所述第一域的网络页面嵌入式框架的哈希值; 当监测到所述哈希值发生变化时,获取变化后的哈希值。6.如权利要求3所述的实现方法,其特征在于,所述根据所述数据请求信息向第二域请求数据,包括: 建立异步数据请求对象,以AJAX的方式向所述第二域的服务器请求数据。7.—种网络客户端跨域请求的实现装置,其特征在于,包括: 变更模块,用于当检测到从第一域向第二域请求数据的数据请求时,根据数据请求信息生成哈希值,并替换第一域的网络页面嵌入式框架的哈希值;其中,所述嵌入式框架为预先在所述第一域的网络页面下创建,且所述嵌入式框架的源文件指向所述第二域的静态超文本标记语言HTML页面; 存储模块,用于将所述第二域返回的被请求数据存储在所述...

【专利技术属性】
技术研发人员:任远姚丽梅王宗妮
申请(专利权)人:小米科技有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1