突破跨域请求限制的方法及其系统技术方案

技术编号:16644720 阅读:53 留言:0更新日期:2017-11-26 17:09
本发明专利技术提供一种突破跨域请求限制的方法及其系统,方法包括分别建立请求对象中各信息字典对象形式的第一映射关系和响应对象中各信息字典对象形式的第二映射关系;当不支持跨域资源共享的浏览器发起跨域请求,则修改跨域请求的请求方法为浏览器支持的请求方法;浏览器将跨域请求的请求对象中的各信息依据第一映射关系包装成由对应key组成的请求内容后发送至服务端;服务端接收请求内容后,在前置过滤器上依据第一映射关系将所述请求内容中各key对应的项对应赋值给服务端接收的请求内容中的请求对象的各信息;服务端依据赋值后的请求对象进行响应。本发明专利技术能够使IE9以下不支持跨域资源共享的浏览器实现跨域请求;而且兼容大多数请求方法。

Method and system for breaking cross domain request restriction

The present invention provides a method of cross domain breakthrough limit requests and system, including the establishment of the first mapping method respectively in the information request object dictionary object form and second mapping between the response object of the information in the form of a dictionary object; when does not support the sharing of cross domain resource browser launched cross domain requests, then modify the request method request for domain request method supported by the browser; the request object browser will cross domain requests in the information based on the first mapping package request content consists of the corresponding key is sent to the server; the service end receives the request content, in the pre filter on the basis of the first mapping the relationship between the key content in the corresponding request the corresponding items assigned to the information request object server receives the request content in the server; according to the request object after the assignment of Response. The present invention enables cross domain requests to be implemented by browsers that do not support cross domain resource sharing below IE9; and is compatible with most request methods.

【技术实现步骤摘要】
突破跨域请求限制的方法及其系统
本专利技术涉及浏览器请求领域,具体说的是一种突破跨域请求限制的方法及其系统。
技术介绍
当前浏览器远程请求需要遵守同源策略(域名,协议,端口相同)。现有浏览器可以通过配置跨域资源共享(cors)策略来突破同源策略,但是IE9以下的浏览器并不支持跨域资源共享(cors)策略,大多以JSONP和xdomainrequest对象来进行跨域的远程调用,当这中跨域调用存在以下问题:JSONP请求方法只支持GET,使用xdomainrequest对象只支持GET和POST,无法http大量请求方法,且JSONP和xdomainrequest都无法修改请求的头部,导致无法跟restful相关api接口对应。因此,有必要提供一种能够适用于IE9以下浏览器实现跨域请求的方法。
技术实现思路
本专利技术所要解决的技术问题是:提供一种适用于IE9以下不支持跨域资源共享的浏览器实现跨域请求的方法及其系统。为了解决上述技术问题,本专利技术采用的技术方案为:一种突破跨域请求限制的方法,包括:分别建立请求对象中各信息字典对象形式的第一映射关系和响应对象中各信息字典对象形式的第二映射关系,所述第一映射关系和第二映射关系以各信息的英文名称为key,以各信息的具体内容为项;当不支持跨域资源共享的浏览器发起跨域请求,则修改跨域请求的请求方法为浏览器支持的请求方法;浏览器将跨域请求的请求对象中的各信息依据所述第一映射关系包装成由对应key组成的请求内容后发送至服务端;服务端接收所述请求内容后,在前置过滤器上依据所述第一映射关系将所述请求内容中各key对应的项对应赋值给服务端接收的请求内容中的请求对象的各信息;服务端依据赋值后的请求对象进行响应,得到响应内容;服务端将响应内容中的响应对象的各信息依据所述第二映射关系包装成由对应key组成的响应内容后发送至浏览器;浏览器接收所述响应内容后,依据所述第二映射关系将所述响应对象中各key对应的项对应赋值给响应对象的各信息。本专利技术提供的另一个技术方案为:一种突破跨域请求限制的系统,包括浏览器和服务端,所述浏览器包括第一计算机可读存储介质,服务端包括第二计算机可读存储介质,所述第一计算机可读存储介质和第二计算接可读存储介质上存储有计算机程序,第一计算机可读存储介质上存储的程序被处理器执行时实现以下步骤:分别建立请求对象中各信息字典对象形式的第一映射关系和响应对象中各信息字典对象形式的第二映射关系,所述第一映射关系和第二映射关系以各信息的英文名称为key,以各信息的具体内容为项;当不支持跨域资源共享的浏览器发起跨域请求,则修改跨域请求的请求方法为浏览器支持的请求方法;浏览器将跨域请求的请求对象中的各信息依据所述第一映射关系包装成由对应key组成的请求内容后发送至服务端;浏览器接收响应内容后,依据所述第二映射关系将所述响应对象中各key对应的项对应赋值给响应对象的各信息;第二计算机可读存储介质上存储的程序被处理器执行时实现以下步骤:分别建立请求对象中各信息字典对象形式的第一映射关系和响应对象中各信息字典对象形式的第二映射关系,所述第一映射关系和第二映射关系以各信息的英文名称为key,以各信息的具体内容为项;服务端接收请求内容后,在前置过滤器上依据所述第一映射关系将所述请求内容中各key对应的项对应赋值给服务端接收的请求内容中的请求对象的各信息;服务端依据赋值后的请求对象进行响应,得到响应内容;服务端将响应内容中的响应对象的各信息依据所述第二映射关系包装成由对应key组成的响应内容后发送至浏览器。本专利技术的有益效果在于:本专利技术通过分别建立请求对象中各信息字典对象形式的第一映射关系以及响应对象中各信息字典对象形式的第二映射关系;然后在不支持跨域资源共享策略的浏览器发起跨域请求时,将请求内容中的请求对象的各信息依据第一映射关系,分别以字典对象的形式包装成请求内容发送至服务端,服务端在前置处进行对应值的映射,获取真实的请求对象后进行响应;而后同样对响应内容依据第二映射关系进行包装反馈至浏览器,浏览器进行对应值的映射后获取响应结果。本专利技术通过分别协定请求对象与响应对象的映射关系,再将请求内容和响应内容依据映射关系转变为接收方可接收的规格进行传输,而后进行对应值映射还原,突破除了不同协议间调用外的其他跨域限制,实现跨域获取数据。附图说明图1为本专利技术一种突破跨域请求限制的方法的流程示意图;图2为本专利技术实施例一的流程示意图。具体实施方式为详细说明本专利技术的
技术实现思路
、所实现目的及效果,以下结合实施方式并配合附图予以说明。本专利技术最关键的构思在于:分别协定请求对象与响应对象字典对象形式的映射关系,将请求内容和响应内容依据映射关系转变为接收方可接收的规格进行传输,而后进行对应值映射还原,实现跨域获取数据。本专利技术涉及的技术术语解释:请参照图1,本专利技术提供一种突破跨域请求限制的方法,包括:分别建立请求对象中各信息字典对象形式的第一映射关系和响应对象中各信息字典对象形式的第二映射关系,所述第一映射关系和第二映射关系以各信息的英文名称为key,以各信息的具体内容为项;当不支持跨域资源共享的浏览器发起跨域请求,则修改跨域请求的请求方法为浏览器支持的请求方法;浏览器将跨域请求的请求对象中的各信息依据所述映射关系包装成由对应key组成的请求内容后发送至服务端;服务端接收所述请求内容后,在前置过滤器上依据所述映射关系将所述请求内容中各key对应的项对应赋值给服务端接收的请求内容中的请求对象的各信息;服务端依据赋值后的请求对象进行响应,得到响应内容;服务端将响应内容中的响应对象的各信息依据所述映射关系包装成由对应key组成的响应内容后发送至浏览器;浏览器接收所述响应内容后,依据所述映射关系将所述响应对象中各key对应的项对应赋值给响应对象的各信息。从上述描述可知,本专利技术的有益效果在于:在不支持跨域资源共享cors的IE9以下的浏览器发起跨域请求的时候,能够实现跨域获取数据。进一步的,所述修改跨域请求的请求方法为浏览器支持的请求方法,具体为:将跨域请求中为DELETE、PUT、PATCH的请求方法修改为POST的请求方法,将HEAD的请求方法修改为GET的请求方法;若跨域请求为有修改响应头部和需要提交cookie,且请求方法为GET的请求,则将其请求方法修改为POST。由上述描述可知,能够支持大多数http请求方法,支持有修改响应头部和需要提交cookie,请求方法为GET的跨域请求,能够适用更多类型的请求。进一步的,使用xdomainrequest对象修改跨域请求的请求方法和发送请求内容。由上述描述可知,使用xdomainrequest进行请求修改可以突破固有限制,满足现有restfulapi的要求,同时能够携带将原不可修改的响应头部进行传递。进一步的,所述请求对象包括请求地址、请求头部、请求方法、请求体和cookie信息;所述响应对象包括响应码、响应体、响应头部、响应码描述字符。进一步的,所述当不支持跨域资源共享的浏览器发起跨域请求,则修改跨域请求的请求方法为浏览器支持的请求方法,具体为:浏览器对xmlhttprequest接口进行重写,得到新的xmlhttprequest接口;声明新的xmlhttprequest接口覆本文档来自技高网
...
突破跨域请求限制的方法及其系统

【技术保护点】
一种突破跨域请求限制的方法,其特征在于,包括:分别建立请求对象中各信息字典对象形式的第一映射关系和响应对象中各信息字典对象形式的第二映射关系,所述第一映射关系和第二映射关系以各信息的英文名称为key,以各信息的具体内容为项;当不支持跨域资源共享的浏览器发起跨域请求,则修改跨域请求的请求方法为浏览器支持的请求方法;浏览器将跨域请求的请求对象中的各信息依据所述第一映射关系包装成由对应key组成的请求内容后发送至服务端;服务端接收所述请求内容后,在前置过滤器上依据所述第一映射关系将所述请求内容中各key对应的项对应赋值给服务端接收的请求内容中的请求对象的各信息;服务端依据赋值后的请求对象进行响应,得到响应内容;服务端将响应内容中的响应对象的各信息依据所述第二映射关系包装成由对应key组成的响应内容后发送至浏览器;浏览器接收所述响应内容后,依据所述第二映射关系将所述响应对象中各key对应的项对应赋值给响应对象的各信息。

【技术特征摘要】
1.一种突破跨域请求限制的方法,其特征在于,包括:分别建立请求对象中各信息字典对象形式的第一映射关系和响应对象中各信息字典对象形式的第二映射关系,所述第一映射关系和第二映射关系以各信息的英文名称为key,以各信息的具体内容为项;当不支持跨域资源共享的浏览器发起跨域请求,则修改跨域请求的请求方法为浏览器支持的请求方法;浏览器将跨域请求的请求对象中的各信息依据所述第一映射关系包装成由对应key组成的请求内容后发送至服务端;服务端接收所述请求内容后,在前置过滤器上依据所述第一映射关系将所述请求内容中各key对应的项对应赋值给服务端接收的请求内容中的请求对象的各信息;服务端依据赋值后的请求对象进行响应,得到响应内容;服务端将响应内容中的响应对象的各信息依据所述第二映射关系包装成由对应key组成的响应内容后发送至浏览器;浏览器接收所述响应内容后,依据所述第二映射关系将所述响应对象中各key对应的项对应赋值给响应对象的各信息。2.如权利要求1所述的一种突破跨域请求限制的方法,其特征在于,所述修改跨域请求的请求方法为浏览器支持的请求方法,具体为:将跨域请求中为DELETE、PUT、PATCH的请求方法修改为POST的请求方法,将HEAD的请求方法修改为GET的请求方法;若跨域请求为有修改响应头部和需要提交cookie,且请求方法为GET的请求,则将其请求方法修改为POST。3.如权利要求2所述的一种突破跨域请求限制的方法,其特征在于,使用xdomainrequest对象修改跨域请求的请求方法和发送请求内容。4.如权利要求1所述的一种突破跨域请求限制的方法,其特征在于,所述请求对象包括请求地址、请求头部、请求方法、请求体和cookie信息;所述响应对象包括响应码、响应体、响应头部、响应码描述字符。5.如权利要求1所述的一种突破跨域请求限制的方法,其特征在于,所述当不支持跨域资源共享的浏览器发起跨域请求,则修改跨域请求的请求方法为浏览器支持的请求方法,具体为:浏览器对xmlhttprequest接口进行重写,得到新的xmlhttprequest接口;声明新的xmlhttprequest接口覆盖旧的xmlhttprequest接口,同时新的xmlhttprequest接口保持原有的使用方式;当浏览器发起请求,则通过新的xmlhttprequest接口判断所述请求是否为跨域请求以及浏览器是否支持跨域资源共享,若不是跨域请求或支持跨域资源共享,则直接调用旧的xmlhttprequest接口,将请求内容发送至旧的xmlhttprequest接口;若浏览器不支持跨域资源共享且为跨域请求,则修改跨域请求的请求方法为浏览器支持的请求方法。6.如权利要求1所述的一种突破跨域请求限制的方法,其特征在于,所述浏览器接收所述响应内容后,依据所述第二映射关系将所述响应对象中各key对应的项对应赋值给响应对象的各信息,包括:浏览器接收所述响应内容后进行拆包,依据第二映射关系获取其中以响应码对应英文名称status为key所对应的项,若ststus对应的项为200-299,则调用成功回调;若ststus对应的项为400-599,则调用响应失败的回调。7.一...

【专利技术属性】
技术研发人员:刘德建林超郭玉湖
申请(专利权)人:福建省华渔教育科技有限公司
类型:发明
国别省市:福建,35

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

1