CN111835778B - 一种用于实现一级域名跨域访问的方法与设备 - Google Patents

一种用于实现一级域名跨域访问的方法与设备 Download PDF

Info

Publication number
CN111835778B
CN111835778B CN202010698909.4A CN202010698909A CN111835778B CN 111835778 B CN111835778 B CN 111835778B CN 202010698909 A CN202010698909 A CN 202010698909A CN 111835778 B CN111835778 B CN 111835778B
Authority
CN
China
Prior art keywords
domain name
interface resource
interface
resource request
url
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.)
Active
Application number
CN202010698909.4A
Other languages
English (en)
Other versions
CN111835778A (zh
Inventor
张传亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Wanwu Xinsheng Environmental Technology Group Co
Original Assignee
Shanghai Wanwu Xinsheng Environmental Technology Group Co
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Wanwu Xinsheng Environmental Technology Group Co filed Critical Shanghai Wanwu Xinsheng Environmental Technology Group Co
Priority to CN202010698909.4A priority Critical patent/CN111835778B/zh
Publication of CN111835778A publication Critical patent/CN111835778A/zh
Application granted granted Critical
Publication of CN111835778B publication Critical patent/CN111835778B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4505Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
    • H04L61/4511Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

与现有技术相比,本申请通过一种用于实现一级域名跨域访问的的方法与设备,首先浏览器获取第一一级域名网页中关于第二一级域名的接口资源请求,接着基于所述第一一级域名网页及所述第二一级域名的接口资源请求,获得修改后的接口资源请求,然后将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器,以使服务器基于所述修改后的接口资源请求获取对应的接口资源数据,最后接收所述服务器返回的所述对应的接口资源数据,以实现对所述第一一级域名网页中第二一级域名的接口的跨域访问。通过该方法,克服了CORS对不同一级域名跨域访问限制,实现了不同一级域名之间的跨域访问,扩大了浏览器的跨域访问范围。

Description

一种用于实现一级域名跨域访问的方法与设备
技术领域
本申请涉及浏览器技术领域,尤其涉及一种用于实现一级域名跨域访问的技术。
背景技术
根据现有的浏览器同源策略,浏览器端保存的一个网站设置的cookie信息,通常情况下另一个网站是无法获取的,除非两个网站的协议、域名以及端口都相同。但随着浏览器技术的不断发展,跨域获取数据资源的需要越来越迫切,于是W3C(World Wide WebConsortium,万维网联盟)推出了一个跨域资源共享的标准CORS(Cross-Origin ResourceSharing,跨域资源共享),在前端浏览器和后端网站服务器都支持的情况下,可以实现跨域资源的请求,CORS跨域已经成为目前前后端数据互通的主要手段。
但是,CORS并没有明确规定不同一级域名之间如何实现访问。实际应用中,出于安全考虑,浏览器通常默认是允许同一个一级域名下的所有域名进行CORS跨域,而不同一级域名之间,是不允许跨域资源访问的,比如浏览器在一个一级域名a.com下的页面中去请求另一个一级域名b.com的接口资源,浏览器拿不到b.com返回的接口资源数据。
发明内容
本申请的目的是提供一种用于实现一级域名跨域访问的方法与设备,用以解决现有技术中不同一级域名之间不能跨域访问的技术问题。
根据本申请的一个方面,提供了一种在浏览器端用于实现一级域名跨域访问的方法,其中,所述方法包括:
获取第一一级域名网页中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
基于所述第一一级域名网页及所述第二一级域名的接口资源请求,获得修改后的接口资源请求,其中,所述修改后的接口资源请求包含所述第一一级域名的接口资源请求和所述第二一级域名信息;
将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器,以使服务器基于所述修改后的接口资源请求获取对应的接口资源数据,其中,所述接口资源数据与所述第二一级域名对应的接口资源数据相同;
接收所述服务器返回的所述对应的接口资源数据,以实现对所述第一一级域名网页中第二一级域名的接口的跨域访问。
优选地,其中,所述基于所述第一一级域名网页及所述第二一级域名的接口资源请求,获得修改后的接口资源请求包括:
获取第一一级域名页面及所述第二一级域名的接口资源请求分别对应的页面URL及接口URL,并基于所述页面URL获取第一一级域名;
将所述接口URL解析成URL对象并赋给第一变量;
基于所述第一变量及所述第一一级域名,获取修改后的接口URL;
基于所述修改后的接口URL,获得修改后的接口资源请求。
优选地,其中,所述基于所述第一变量及所述第一一级域名,获取修改后的接口URL包括:
基于所述第一变量,获得接口的域名前缀;
拼接所述域名前缀和所述第一一级域名,获得修改后的第一变量;
将所述修改后的第一变量赋给所述URL对象,并反向解析,以获得修改后的接口URL。
根据本申请的又一个方面,提供了一种在服务器端用于实现一级域名跨域访问的方法,其中,所述方法包括:
接收浏览器发送的第一一级域名页面中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
基于所述接口资源请求,获取对应的第二一级域名的接口资源数据,其中,所述第二一级域名的接口资源数据与第一一级域名对应的接口资源数据相同;
将所述第二一级域名的接口资源数据发送至所述浏览器。
优选地,其中,所述基于所述接口资源请求,获取对应的第二一级域名的接口资源数据包括:
基于所述接口资源请求,确定所述接口资源请求的原始请求源对应的第二一级域名;
基于预设配置,获取对应的第二一级域名的接口资源数据。
优选地,其中,所述基于所述接口资源请求,确定所述接口资源请求的原始请求源对应的第二一级域名包括以下任一项:
解析所述接口资源请求,以确定所述接口资源请求的原始请求源对应的第二一级域名;
查看服务器日志数据,以确定所述接口资源请求的原始请求源对应的第二一级域名。
优选地,其中,所述预设配置的设置包括:
在域名列表中添加第一一级域名和第二一级域名,并使这两个一级域名拥有相同的接口配置;
设置域名解析,以使服务器对于第一一级域名的接口资源请求和第二一级域名的相同接口资源请求获取相同的接口资源数据。
根据本申请的另一方面,还提供了一种在浏览器端用于实现一级域名跨域访问的设备,其特征在于,所述设备包括:
第一装置,用于获取第一一级域名网页中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
第二装置,用于基于所述第一一级域名网页及所述第二一级域名的接口资源请求,获得修改后数据接口的请求,其中,所述修改后的接口资源请求包含所述第一一级域名的接口资源请求和所述第二一级域名信息;
第三装置,用于将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器,以使服务器基于所述修改后的接口资源请求获取对应的接口资源数据,其中,所述接口资源数据与所述第二一级域名对应的接口资源数据相同;
第四装置,用于接收所述服务器返回的所述对应的接口资源数据,以实现对所述第一一级域名网页中第二一级域名的接口的跨域访问。
根据本申请的再一方面,还提供了一种在服务器端用于实现一级域名跨域访问的设备,其特征在于,所述设备包括:
第五装置,用于接收浏览器发送的第一一级域名页面中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
第六装置,用于基于所述接口资源请求,获取对应的第二一级域名的接口资源数据,其中,所述第二一级域名的接口资源数据与第一一级域名对应的接口资源数据相同;
第七装置,用于将所述第二一级域名的接口资源数据发送至所述浏览器。
与现有技术相比,本申请通过一种用于实现一级域名跨域访问的的方法与设备,首先浏览器获取第一一级域名网页中关于第二一级域名的接口资源请求,接着基于所述第一一级域名网页及所述第二一级域名的接口资源请求,获得修改后的接口资源请求,然后将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器,以使服务器基于所述修改后的接口资源请求获取对应的接口资源数据,最后接收所述服务器返回的所述对应的接口资源数据,以实现对所述第一一级域名网页中第二一级域名的接口的跨域访问。通过该方法,克服了浏览器CORS跨域访问限制,实现了不同一级域名之间的跨域访问,扩大了浏览器的跨域访问范围。
附图说明
通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1示出根据本申请一个方面的一种在浏览器端用于实现一级域名跨域访问的方法流程图;
图2示出根据本申请又一个方面的一种在服务器端用于实现一级域名跨域访问的方法流程图;
图3示出根据本申请一个实施例的一种用于实现一级域名跨域访问的方法流程图;
图4示出根据本申请另一个方面的一种用于实现一级域名跨域访问的浏览器设备示意图;
图5示出根据本申请再一个方面的一种用于实现一级域名跨域访问的服务器设备示意图;
附图中相同或相似的附图标记代表相同或相似的部件。
具体实施方式
下面结合附图对本发明作进一步详细描述。
在本申请一个典型的配置中,系统各模块和可信方均包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括非暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
为更进一步阐述本申请所采取的技术手段及取得的效果,下面结合附图及优选实施例,对本申请的技术方案,进行清楚和完整的描述。
图1示出本申请一个方面的一种在浏览器端用于实现一级域名跨域访问的方法流程图,其中,一个实施例的方法包括:
S11获取第一一级域名网页中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
S12基于所述第一一级域名网页及所述第二一级域名的接口资源请求,获得修改后的接口资源请求,其中,所述修改后的接口资源请求包含所述第一一级域名的接口资源请求和所述第二一级域名信息;
S13将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器,以使服务器基于所述修改后的接口资源请求获取对应的接口资源数据,其中,所述接口资源数据与所述第二一级域名对应的接口资源数据相同;
S14接收所述服务器返回的所述对应的接口资源数据,以实现对所述第一一级域名网页中第二一级域名的接口的跨域访问。
在本申请中,所述方法通过设备1上安装的web浏览器或webview容器(以下都称浏览器)向服务器2发送一级域名跨域访问请求来实现,所述设备1为计算机设备,所述计算机设备包括但不限于个人计算机、笔记本电脑、工业计算机、智能终端设备,在此,所述计算机设备仅为举例,其他现有的或者今后可能出现的设备如适用于本申请也应包含在本申请的保护范围内,在此,以引用的方式包含于此。
所述服务器2为计算机设备和/或云,所述计算机设备包括但不限于个人计算机、笔记本电脑、工业计算机、网络主机、单个网络服务器、多个网络服务器集;所述云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个虚拟超级计算机。在此,所述计算机设备和/或云仅为举例,其他现有的或者今后可能出现的设备和/或资源共享平台如适用于本申请也应包含在本申请的保护范围内,在此,以引用的方式包含于此。
在该实施例中,在所述步骤S11中,通过触发设备1的浏览器第一一级域名网页中的相关链接,设备1获取第一一级域名网页中关于第二一级域名的接口资源请求。
其中,所述接口资源是指第一一级域名网页中的一个链接,通过该链接获取第二一级域名的接口资源数据。所述接口资源请求中至少包含所述第一一级域名网页的URL信息,比如www.a.com,和第二一级域名的接口URL信息,比如biz.b.com/api。
继续在该实施例中,在所述步骤S12中,设备1在获取到接口资源请求后,对该接口资源请求包含的内容进行修改,以获得修改后的接口资源请求,其中,所述修改后的接口资源请求中至少包含第一域名接口地址信息以及原始的接口数据请求是来自第二一级域名的接口地址信息,比如,将第一一级域名网页www.a.com中关于第二一级域名的biz.b.com/api请求修改成表现为第一一级域名的biz.a.com/api请求,而且包含的相关信息能表明该接口资源请求的实际来源是第二一级域名b.com的biz.b.com/api请求。
优选地,其中,所述基于所述第一一级域名网页及所述第二一级域名的接口资源请求,获得修改后的接口资源请求包括:
获取第一一级域名页面及所述第二一级域名的接口资源请求分别对应的页面URL及接口URL,并基于所述页面URL获取第一一级域名;
将所述接口URL解析成URL对象并赋给第一变量;
基于所述第一变量及所述第一一级域名,获取修改后的接口URL;
基于所述修改后的接口URL,获得修改后的接口资源请求。
优选地,其中所述基于所述第一变量及所述第一一级域名,获取修改后的接口URL包括:
基于所述第一变量,获得接口的域名前缀;
拼接所述域名前缀和所述第一一级域名,获得修改后的第一变量;
将所述修改后的第一变量赋给所述URL对象,并反向解析,以获得修改后的接口URL。
继续在该实施例中,在所述步骤S13中,将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器2,以使服务器2基于所述修改后的接口资源请求获取对应的接口资源数据。
其中,前提是所述服务器2的配置能确保服务器能正确解析所述修改后的接口资源请求,获取到的所述接口资源数据与所述第二一级域名对应的接口资源数据相同。
继续在该实施例中,在所述步骤S14中,设备1接收服务器2返回的所述对应的接口资源数据,以实现对所述第一一级域名网页中第二一级域名的接口的跨域访问。
一个可选的实施例中,设备1上安装了基于JavaScript运行环境的浏览器,在第一一级域名a.com页面中要访问不同一级域名b.com的接口biz.b.com/api的资源,在得到服务器2支持的前提下,设备1首先获取第一一级域名页面URL:www.a.com,和第二一级域名的接口URL:biz.b.com/api;接着将接口URL解析成URL对象并赋给第一变量,比如,将接口URL通过URI方法解析成URL对象并赋给第一变量api;然后从页面URL中获得页面的第一一级域名,比如,通过suffixDomain方法从页面URL中获得页面的一级域名a.com;再接着利用第一变量获得接口URL中第二一级域名的域名前缀,比如,利用第一变量api自身的subdomain方法获得域名前缀biz;然后将获得的第二一级域名的域名前缀与一级域名进行拼接,获得修改后的第一变量,并将所述修改后的第一变量赋给所述URL对象,并反向解析,以获得修改后的接口URL,比如,拼接获得的biz和a.com,得到biz.a.com并赋给URL对象,并反向解析,获得修改后的接口URL:biz.a.com/api。
在此,所述URI方法、suffixDomain方法、subdomain方法仅为举例,其他现有的或者今后可能出现的方法如适用于本申请也应包含在本申请的保护范围内,在此,以引用的方式包含于此。
图2示出根据本申请又一个方面的一种在服务器端用于实现一级域名跨域访问的方法流程图,其中,一个实施例的方法包括:
S21接收浏览器发送的第一一级域名页面中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
S22基于所述接口资源请求,获取对应的第二一级域名的接口资源数据,其中,所述第二一级域名的接口资源数据与第一一级域名对应的接口资源数据相同;
S23将所述第二一级域名的接口资源数据发送至所述浏览器。
在该实施例中,在所述步骤S21中,服务器2接收浏览器发送的第一一级域名页面中关于第二一级域名的接口资源请求。
其中,所述接口资源请求至少包含第一一级域名的接口信息,比如,表现为第一一级域名的接口为biz.a.com/api,以及能表明该接口资源请求的实际来源是第二一级域名的信息,比如表明实际来源是b.com的接口资源biz.b.com/api。
继续在该实施例中,在所述步骤S22中,服务器2基于所述接口资源请求,确定所述接口资源请求的原始来源,然后根据确定了原始来源的接口资源请求,获取对应的接口资源数据。
优选地,其中,所述基于所述接口资源请求,获取对应的第二一级域名的接口资源数据包括:
基于所述接口资源请求,确定所述接口资源请求的原始请求源对应的第二一级域名;
基于预设配置,获取对应的第二一级域名的接口资源数据。
比如,服务器2基于收到的biz.a.com/api请求,确定biz.a.com/api请求的原始来源是b.com,因此,服务器2可以确认接收到的接口资源请求实际是biz.b.com/api请求,然后服务器2基于配置,解析biz.b.com/api请求,获得与biz.b.com/api对应的接口资源数据,复制该接口资源数据作为biz.a.com/api对应的接口资源数据。
优选地,其中,所述基于所述接口资源请求,确定所述接口资源请求的原始请求源对应的第二一级域名包括以下任一项:
解析所述接口资源请求,以确定所述接口资源请求的原始请求源对应的第二一级域名;
查看服务器日志数据,以确定所述接口资源请求的原始请求源对应的第二一级域名。
比如,服务器2接收到修改后的biz.a.com/api请求,抓包解析该接口资源请求数据,或者查看日志数据中标识该接口资源请求的原始来源对应的referer内容,确认biz.a.com/api请求的原始来源是来自第二一级域名b.com。
优选地,其中,所述所述预设配置的设置包括:
在域名列表中添加第一一级域名和第二一级域名,并使这两个一级域名拥有相同的接口配置;
设置域名解析,以使服务器对于第一一级域名的接口资源请求和第二一级域名的相同接口资源请求获取相同的接口资源数据。
继续在该实施例中,在所述步骤S23中,服务器2将与收到的接口资源请求对应的第二一级域名的接口资源数据发送至设备1,以在设备1的浏览器端展示,实现一级域名跨域访问。
一个可选的实施例中,在采用Nginx代理的服务器2,为了确保基于JavaScript运行环境的设备1可实现一级域名跨域访问的正常实现,首先在服务器2的域名列表中配置好一级域名跨域访问的两个或者多个一级域名,比如,对于要实现一级域名跨域访问的两个一级域名a.com和b.com,在参数server_name的值中添加a.com和b.com,并使这两个一级域名拥有同样的API接口;其次,能正确解析这两个或者多个一级域名,比如,在服务器2接收到接口资源请求biz.a.com/api后,根据获取的接口资源请求,确定实际请求的来源,比如,服务器2接收到biz.a.com/api请求,抓包解析该接口资源请求数据或者查看日志数据中标识该接口资源请求的原始来源对应的referer内容,确认biz.a.com/api请求的原始来源是来自第一一级域名a.com还是第二一级域名b.com,在确认接口资源请求的原始来源后,服务器2进行正确解析。服务器2基于确认了原始来源的接口资源请求,正确解析,以获取对应的接口资源数据,比如,若确认的biz.a.com/api请求的原始来源是来自第二一级域名b.com,则服务器2解析biz.b.com/api,获取与biz.b.com/api对应的接口资源数据,并将该接口资源数据复制该接口资源数据作为biz.a.com/api对应的接口资源数据。然后服务器2将该接口资源数据发送至设备1,以在设备1的浏览器端展示,实现一级域名跨域访问。
图3示出根据本申请一个实施例的一种用于实现一级域名跨域访问的方法流程图,其中,所述方法包括:
S31设备1获取第一一级域名网页中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
S32基于所述第一一级域名网页及所述第二一级域名的接口资源请求,获得修改后的接口资源请求,其中,所述修改后的接口资源请求包含所述第一一级域名的接口资源请求和所述第二一级域名信息;
S33将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器2,相应地,服务器2接收设备1发送的所述修改后的接口资源请求;
S34服务器2基于所述修改后的接口资源请求获取对应的接口资源数据,其中,所述接口资源数据与所述第二一级域名对应的接口资源数据相同;
S35服务器2向设备1发送所述接口资源数据,相应地,设备1接收服务器2返回的所述对应的接口资源数据。
在该实施例中,在所述步骤S31中,通过触发设备1的浏览器,设备1获取第一一级域名网页中的相关链接,获取第一一级域名网页中关于第二一级域名的接口资源请求。
其中,所述接口资源是指第一一级域名网页中的一个链接,该链接指向第二一级域名的接口资源数据。所述接口资源请求中至少包含所述第一一级域名网页的URL信息,比如www.a.com,和第二一级域名的接口URL信息,比如biz.b.com/api。
继续在该实施例中,在所述步骤S32中,设备1在获取到接口资源请求后,对该接口资源请求包含的内容进行修改,以获得修改后的接口资源请求,其中,所述修改后的接口资源请求中至少包含第一域名接口地址信息以及原始的接口数据请求是来自第二一级域名的接口地址信息,比如,将第一一级域名网页www.a.com中关于第二一级域名的接口biz.b.com/api的请求修改成表现为第一一级域名的接口biz.a.com/api的请求,而且包含相关信息以能表明该接口资源请求的实际来源是第二一级域名b.com的接口资源biz.b.com/api的请求。
继续在该实施例中,在所述步骤S33中,设备1将修改后包含原始来源为第二一级域名信息、表现为第一一级域名的接口资源请求发送至所述第一一级域名对应的服务器2,相应地,服务器2接收设备1发送的所述修改后的接口资源请求。
继续在该实施例中,在所述步骤S34中,服务器2解析所述接口资源请求,和/或者查看日志数据,以确定所述接口资源请求的原始来源,然后根据确定了原始来源的接口资源请求,获取对应的接口资源数据。比如,服务器2解析收到的biz.a.com/api请求,和/或者查看日志数据,以确定biz.a.com/api请求的原始来源是b.com,因此,服务器2可以确认实际是biz.b.com/api请求,然后服务器2基于配置,解析biz.b.com/api请求,获得与biz.b.com/api对应的接口资源数据,复制该接口资源数据作为biz.a.com/api对应的接口资源数据。
继续在该实施例中,在所述步骤S35中,服务器2将与收到的接口资源请求对应的第二一级域名的接口资源数据发送至设备1,以在设备1的浏览器端展示,实现一级域名跨域访问。例如,服务器2收到包含原始来源是第二一级域名b.com的biz.a.com/api请求,确定实际是biz.b.com/api请求,基于服务器2的配置解析该实际接口资源请求,获得与biz.b.com/api对应的接口资源数据,复制该接口资源数据作为biz.a.com/api对应的接口资源数据,然后将该接口资源数据发送至设备1,以在设备1的浏览器端展示,实现在www.a.com页面上实现对biz.b.com/api的一级域名跨域访问。
图4示出根据本申请另一个方面的一种用于实现一级域名跨域访问的浏览器设备示意图,其中,所述设备包括:
第一装置41,用于获取第一一级域名网页中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
第二装置42,用于基于所述第一一级域名网页及所述第二一级域名的接口资源请求,获得修改后数据接口的请求,其中,所述修改后的接口资源请求包含所述第一一级域名的接口资源请求和所述第二一级域名信息;
第三装置43,用于将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器,以使服务器基于所述修改后的接口资源请求获取对应的接口资源数据,其中,所述接口资源数据与所述第二一级域名对应的接口资源数据相同;
第四装置44,用于接收所述服务器返回的所述对应的接口资源数据,以实现对所述第一一级域名网页中第二一级域名的接口的跨域访问。
图5示出根据本申请再一个方面的一种用于实现一级域名跨域访问的服务器设备示意图,其中,所述设备包括:
第五装置51,用于接收浏览器发送的第一一级域名页面中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
第六装置52,用于基于所述接口资源请求,获取对应的第二一级域名的接口资源数据,其中,所述第二一级域名的接口资源数据与第一一级域名对应的接口资源数据相同;
第七装置53,用于将所述第二一级域名的接口资源数据发送至所述浏览器。
根据本申请的又一方面,还提供了一种计算机可读介质,所述计算机可读介质存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现前述方法。
根据本申请的又一方面,还提供了一种用于实现一级域名跨域访问的浏览器设备,其中,该设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述方法的操作。
例如,计算机可读指令在被执行时使所述一个或多个处理器:获取第一一级域名网页中关于第二一级域名的接口资源请求,基于所述第一一级域名网页及所述第二一级域名的接口资源请求,获得修改后数据接口的请求,将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器,以使服务器基于所述修改后的接口资源请求获取对应的接口资源数据,接收所述服务器返回的所述对应的接口资源数据,以实现对所述第一一级域名网页中第二一级域名的接口的跨域访问。
根据本申请的再一方面,还提供了一种用于实现一级域名跨域访问的服务器设备,其中,该设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如前述方法的操作。
例如,计算机可读指令在被执行时使所述一个或多个处理器:接收浏览器发送的第一一级域名页面中关于第二一级域名的接口资源请求,基于所述接口资源请求,获取对应的第二一级域名的接口资源数据,将所述第二一级域名的接口资源数据发送至所述浏览器。
对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。装置权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

Claims (11)

1.一种在浏览器端用于实现一级域名跨域访问的方法,其特征在于,所述方法包括:
获取第一一级域名网页中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
获取所述第一一级域名页面及所述第二一级域名的接口资源请求分别对应的页面URL及接口URL,并基于所述页面URL获取第一一级域名;
将所述接口URL解析成URL对象并赋给第一变量,并基于所述第一变量及所述第一一级域名,获取修改后的接口URL;
基于所述修改后的接口URL,获得修改后的接口资源请求,其中,所述修改后的接口资源请求包含所述第一一级域名的接口资源请求和所述第二一级域名信息;
将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器,以使服务器基于所述修改后的接口资源请求获取对应的接口资源数据,其中,所述接口资源数据与所述第二一级域名对应的接口资源数据相同;
接收所述服务器返回的所述对应的接口资源数据,以实现对所述第一一级域名网页中第二一级域名的接口的跨域访问。
2.根据权利要求1所述的方法,其特征在于,所述基于所述第一变量及所述第一一级域名,获取修改后的接口URL包括:
基于所述第一变量,获得接口的域名前缀;
拼接所述域名前缀和所述第一一级域名,获得修改后的第一变量;
将所述修改后的第一变量赋给所述URL对象,并反向解析,以获得修改后的接口URL。
3.一种在服务器端用于实现一级域名跨域访问的方法,其特征在于,所述方法包括:
接收浏览器发送的第一一级域名页面中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同,其中,所述接口资源请求是所述浏览器端根据获取的所述第一一级域名网页及所述第二一级域名的接口资源请求分别对应的页面URL及接口URL,基于所述页面URL获取第一一级域名,将所述接口URL解析成URL对象并赋值给第一变量,并基于所述第一变量及所述第一一级域名,获取修改后的接口URL,并基于所述修改后的接口URL获得的,其中,所述接口资源请求包含所述第一一级域名的接口资源请求和所述第二一级域名信息;
基于所述接口资源请求,获取对应的第二一级域名的接口资源数据,其中,所述第二一级域名的接口资源数据与第一一级域名对应的接口资源数据相同;
将所述第二一级域名的接口资源数据发送至所述浏览器。
4.根据权利要求3所述的方法,其特征在于,所述基于所述接口资源请求,获取对应的第二一级域名的接口资源数据包括:
基于所述接口资源请求,确定所述接口资源请求的原始请求源对应的第二一级域名;
基于预设配置,获取对应的第二一级域名的接口资源数据。
5.根据权利要求4所述的方法,其特征在于,所述基于所述接口资源请求,确定所述接口资源请求的原始请求源对应的第二一级域名包括以下任一项:
解析所述接口资源请求,以确定所述接口资源请求的原始请求源对应的第二一级域名;
查看服务器日志数据,以确定所述接口资源请求的原始请求源对应的第二一级域名。
6.根据权利要求4所述的方法,其特征在于,所述预设配置的设置包括:
在域名列表中添加第一一级域名和第二一级域名,并使这两个一级域名拥有相同的接口配置;
设置域名解析,以使服务器对于第一一级域名的接口资源请求和第二一级域名的相同接口资源请求获取相同的接口资源数据。
7.一种在浏览器端用于实现一级域名跨域访问的设备,其特征在于,所述设备包括:
第一装置,用于获取第一一级域名网页中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同;
第二装置,用于获取所述第一一级域名页面及所述第二一级域名的接口资源请求分别对应的页面URL及接口URL,并基于所述页面URL获取第一一级域名,以及将所述接口URL解析成URL对象并赋给第一变量,并基于所述第一变量及所述第一一级域名,获取修改后的接口URL,再基于所述修改后的接口URL,获得修改后的接口资源请求,其中,所述修改后的接口资源请求包含所述第一一级域名的接口资源请求和所述第二一级域名信息;
第三装置,用于将所述修改后的接口资源请求发送至所述第一一级域名对应的服务器,以使服务器基于所述修改后的接口资源请求获取对应的接口资源数据,其中,所述接口资源数据与所述第二一级域名对应的接口资源数据相同;
第四装置,用于接收所述服务器返回的所述对应的接口资源数据,以实现对所述第一一级域名网页中第二一级域名的接口的跨域访问。
8.一种在服务器端用于实现一级域名跨域访问的设备,其特征在于,所述设备包括:
第五装置,用于接收浏览器发送的第一一级域名页面中关于第二一级域名的接口资源请求,其中,所述第一一级域名与所述第二一级域名不同,其中,所述接口资源请求是所述浏览器端根据获取的所述第一一级域名网页及所述第二一级域名的接口资源请求分别对应的页面URL及接口URL,基于所述页面URL获取第一一级域名,将所述接口URL解析成URL对象并赋值给第一变量,并基于所述第一变量及所述第一一级域名,获取修改后的接口URL,并基于所述修改后的接口URL获得的,其中,所述接口资源请求包含所述第一一级域名的接口资源请求和所述第二一级域名信息;
第六装置,用于基于所述接口资源请求,获取对应的第二一级域名的接口资源数据,其中,所述第二一级域名的接口资源数据与第一一级域名对应的接口资源数据相同;
第七装置,用于将所述第二一级域名的接口资源数据发送至所述浏览器。
9.一种计算机可读介质,其特征在于,
其上存储有计算机可读指令,所述计算机可读指令可被处理器执行以实现如权利要求1至6中任一项所述的方法。
10.一种用于实现一级域名跨域访问的浏览器设备,其特征在于,所述设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如权利要求1至2中任一项所述方法的操作。
11.一种用于实现一级域名跨域访问的服务器设备,其特征在于,所述设备包括:
一个或多个处理器;以及
存储有计算机可读指令的存储器,所述计算机可读指令在被执行时使所述处理器执行如权利要求3至6中任一项所述方法的操作。
CN202010698909.4A 2020-07-20 2020-07-20 一种用于实现一级域名跨域访问的方法与设备 Active CN111835778B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010698909.4A CN111835778B (zh) 2020-07-20 2020-07-20 一种用于实现一级域名跨域访问的方法与设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010698909.4A CN111835778B (zh) 2020-07-20 2020-07-20 一种用于实现一级域名跨域访问的方法与设备

Publications (2)

Publication Number Publication Date
CN111835778A CN111835778A (zh) 2020-10-27
CN111835778B true CN111835778B (zh) 2022-09-30

Family

ID=72924407

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010698909.4A Active CN111835778B (zh) 2020-07-20 2020-07-20 一种用于实现一级域名跨域访问的方法与设备

Country Status (1)

Country Link
CN (1) CN111835778B (zh)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615179B (zh) * 2008-06-25 2011-08-17 国际商业机器公司 用于Web应用的跨域交互的方法和系统
CN105100294B (zh) * 2014-05-20 2018-05-08 阿里巴巴集团控股有限公司 获取网页的方法、系统、网络服务器、浏览器和gslb
CN104392008B (zh) * 2014-12-19 2017-12-05 北京奇虎科技有限公司 网页数据获取方法、浏览器客户端及cdn服务器
CN108256069A (zh) * 2018-01-17 2018-07-06 阿里巴巴集团控股有限公司 一种页面跨域访问的方法和装置
CN108769189B (zh) * 2018-05-28 2020-01-03 上海恺英网络科技有限公司 跨网络域资源的访问方法及设备

Also Published As

Publication number Publication date
CN111835778A (zh) 2020-10-27

Similar Documents

Publication Publication Date Title
US9923977B2 (en) Transferring cookie data to another domain
US11563674B2 (en) Content based routing method and apparatus
CN102932197B (zh) 一种测试方法及测试系统
CN108769189B (zh) 跨网络域资源的访问方法及设备
US20170272499A1 (en) Method and device for loading webpage
US20130111594A1 (en) Detection of dom-based cross-site scripting vulnerabilities
CN105100294A (zh) 获取网页的方法、系统、网络服务器、浏览器和gslb
EP3136656A1 (en) Information sharing method and device
US10565090B1 (en) Proxy for debugging transformed code
CN110300133A (zh) 跨域数据传输方法、装置、设备及存储介质
CN109327559B (zh) 一种基于混合云平台的域名解析方法和装置
CN106686151B (zh) 一种ip地址获取方法及装置
CN105871947A (zh) 跨域请求数据的方法及装置
CN110933193B (zh) 域名解析方法、装置、电子设备及计算机可读存储介质
JP6779307B2 (ja) ページ表示のための方法及び装置
CN107704464B (zh) 解析静态资源的路径的方法及装置
CN112671876B (zh) 用于页面运维的方法与设备
CN111835778B (zh) 一种用于实现一级域名跨域访问的方法与设备
CN112434233B (zh) 一种用于加快次级页面首屏渲染的方法与设备
US20180048697A1 (en) Method and apparatus for detecting access path
CN113127788B (zh) 页面处理方法、对象处理方法、装置及设备
CN108920589B (zh) 浏览劫持识别方法、装置、服务器及存储介质
CN109600403B (zh) 一种发送信息的方法及装置
CN111600943A (zh) 一种用于获取目标数据的方法与设备
CN109213946A (zh) iframe跨域高度自适应方法及装置

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
CB02 Change of applicant information

Address after: Room 1101-1103, No. 433, Songhu Road, Yangpu District, Shanghai

Applicant after: Shanghai wanwansheng Environmental Protection Technology Group Co.,Ltd.

Address before: Room 1101-1103, No. 433, Songhu Road, Yangpu District, Shanghai

Applicant before: SHANGHAI YUEYI NETWORK INFORMATION TECHNOLOGY Co.,Ltd.

CB02 Change of applicant information
GR01 Patent grant
GR01 Patent grant