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对应的项对应赋值给响应对象的各信息。
【技术特征摘要】
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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。