CN111198998B - 基于Ajax请求的网络页面加载方法、装置及系统 - Google Patents
基于Ajax请求的网络页面加载方法、装置及系统 Download PDFInfo
- Publication number
- CN111198998B CN111198998B CN201911421478.0A CN201911421478A CN111198998B CN 111198998 B CN111198998 B CN 111198998B CN 201911421478 A CN201911421478 A CN 201911421478A CN 111198998 B CN111198998 B CN 111198998B
- Authority
- CN
- China
- Prior art keywords
- ajax request
- ajax
- request
- response content
- native client
- 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
Links
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/957—Browsing optimisation, e.g. caching or content distillation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
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
本发明公开了一种基于Ajax请求的网络页面加载方法、装置及系统,方法包括:向网页视图控件中注入用于拦截页面加载函数的Hook代码,当检测到由所述页面加载函数触发的Ajax请求时,通过Hook代码拦截Ajax请求;将拦截到的Ajax请求转发给原生客户端,以供所述原生客户端向服务端获取与所述Ajax请求相对应的响应内容;接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容,将所述响应内容发送给所述网页视图控件中的页面加载函数,以供所述页面加载函数根据响应内容加载网络页面。在该方式中,通过Hook代码能够拦截Ajax请求的完整内容,从而便于原生客户端获取到Ajax请求中的完整body体,进而针对Ajax请求实现安全监控,以便提升用户浏览网页的安全性。
Description
技术领域
本发明涉及互联网技术领域,具体涉及一种基于Ajax请求的网络页面加载方法、装置及系统。
背景技术
Ajax(Asynchronous Javascript And XML,异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。通过Ajax技术,能够在无需重新加载整个网页的情况下,快速更新部分网页内容。具体地,通过在后台与服务器进行少量数据交换,Ajax可以使网页实现异步更新,因此,可以在不重新加载整个网页的情况下,对网页的局部进行更新。
但是,发明人在实现本发明的过程中发现,上述方式至少存在如下缺陷:Ajax请求通常由网页视图控件(如WKWebView)进行触发,该控件在处理Ajax请求时,会将请求的内容主体(即body体)清空,从而导致原生客户端无法获取到请求的body体,进而无法对WKWebView触发的Ajax请求进行安全监控。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的基于Ajax请求的网络页面加载方法、装置及系统。
根据本发明的一个方面,提供了一种基于Ajax请求的网络页面加载方法,包括:
向网页视图控件中注入用于拦截页面加载函数的Hook代码,当检测到由所述页面加载函数触发的Ajax请求时,通过所述Hook代码拦截所述Ajax请求;
将拦截到的Ajax请求转发给原生客户端,以供所述原生客户端向服务端获取与所述Ajax请求相对应的响应内容;
接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容,将所述响应内容发送给所述网页视图控件中的页面加载函数,以供所述页面加载函数根据所述响应内容加载网络页面。
可选地,所述将拦截到的Ajax请求转发给原生客户端包括:通过预设的桥接代码,将拦截到的Ajax请求转发给原生客户端;并且,
所述接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容包括:通过所述桥接代码,接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容。
可选地,所述Hook代码为JS代码,则所述通过所述桥接代码,接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容包括:
根据所述JS代码的格式规范,针对所述原生客户端获取到的与所述Ajax请求相对应的响应内容进行封装处理。
可选地,所述网页视图控件为WKWebView控件,所述原生客户端为IOS原生客户端。
可选地,所述将拦截到的Ajax请求转发给原生客户端之后,进一步包括:
所述原生客户端将所述Ajax请求发送给网关设备;
通过网关设备获取所述拦截到的Ajax请求中包含的内容主体,当判断出所述内容主体符合安全规范时,由所述网关设备将所述Ajax请求发送给服务端,以供服务端返回与所述Ajax请求相对应的响应内容。
根据本发明的又一个方面,提供了一种基于Ajax请求的网络页面加载装置,包括:
注入模块,适于向网页视图控件中注入用于拦截页面加载函数的Hook代码,当检测到由所述页面加载函数触发的Ajax请求时,通过所述Hook代码拦截所述Ajax请求;
转发模块,适于将拦截到的Ajax请求转发给原生客户端,以供所述原生客户端向服务端获取与所述Ajax请求相对应的响应内容;
加载模块,适于接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容,将所述响应内容发送给所述网页视图控件中的页面加载函数,以供所述页面加载函数根据所述响应内容加载网络页面。
可选地,所述转发模块具体适于:通过预设的桥接代码,将拦截到的Ajax请求转发给原生客户端;并且,
所述加载模块具体适于:通过所述桥接代码,接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容。
根据本发明的又一个方面,提供了一种基于Ajax请求的网络页面加载系统,包括:上述的基于Ajax请求的网络页面加载装置、网关设备、以及服务端。
根据本发明的又一方面,提供了一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行上述基于Ajax请求的网络页面加载方法对应的操作。
根据本发明的再一方面,提供了一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如上述基于Ajax请求的网络页面加载方法对应的操作。
在本发明所提供的基于Ajax请求的网络页面加载方法、装置及系统中,预先向网页视图控件中注入用于拦截页面加载函数的Hook代码,以便通过Hook代码拦截Ajax请求,并将拦截到的Ajax请求转发给原生客户端,以接收原生客户端获取到的与Ajax请求相对应的响应内容,从而根据响应内容加载网络页面。由此可见,在该方式中,通过Hook代码能够拦截Ajax请求的完整内容,从而便于原生客户端获取到Ajax请求中的完整body体,进而针对Ajax请求实现安全监控,以便提升用户浏览网页的安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明一个实施例的基于Ajax请求的网络页面加载方法的流程示意图;
图2示出了本发明提供的技术方案的系统原理图;
图3示出了根据本发明又一个实施例的基于Ajax请求的网络页面加载装置的结构示意图;
图4示出了根据本发明的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的基于Ajax请求的网络页面加载方法的流程示意图,如图1所示,该方法包括:
步骤S110:向网页视图控件中注入用于拦截页面加载函数的Hook代码,当检测到由所述页面加载函数触发的Ajax请求时,通过所述Hook代码拦截所述Ajax请求。
其中,该网页视图控件可以为WKWebView控件,该WKWebView用于展示一个web页面,所使用的内核是webkit引擎。具体地,向网页视图控件中注入用于拦截页面加载函数的Hook代码。该Hook代码可以为JS Hook代码,具体用于Hook JS的Ajax网络请求,并且能够跟原生WKWebView通信,把拦截到的请求通过JS和原生的交互转发给原生客户端。
由此可见,通过Hook代码能够实时监测页面加载函数触发的Ajax请求,并在页面加载函数触发Ajax请求时,通过Hook代码拦截该Ajax请求。
步骤S120:将拦截到的Ajax请求转发给原生客户端,以供原生客户端向服务端获取与Ajax请求相对应的响应内容。
具体地,可以通过预设的桥接代码,将拦截到的Ajax请求转发给原生客户端。该预设的桥接代码可以为JSBridge代码。其中,JSBridge代码用于调用原生客户端。并且,JSBridge代码能够作为原生和非原生(如H5页面)之间的桥梁,以构建原生和非原生间用于实现消息通信的双向通道。该桥接代码可以是Hook代码的一部分,也可以是独立于Hook代码的其他代码段,本发明对此不作限定。
另外,当原生客户端接收到拦截到的Ajax请求后,向服务端获取与该Ajax请求相对应的响应内容。该原生客户端可以为IOS原生客户端。具体地,原生客户端将Ajax请求发送给网关设备;通过网关设备获取拦截到的Ajax请求中包含的内容主体(body体),当判断出内容主体符合安全规范时,由网关设备将该Ajax请求发送给服务端,以供服务端返回与Ajax请求相对应的响应内容。由此可见,在该方式中,由于原生客户端能够获取到Ajax请求中包含的body体,因此,安全网关设备也能够获取到该body体,进而根据body体的内容判断该Ajax请求是否合法(符合安全规范),并仅在符合安全规范时将其转发给服务端进行处理。当然,网关设备也可以在内容主体不符合安全规范时仍然将其转发给服务端进行处理,以便实时监控对应的网页客户端的网络行为,从而实现安全监控的目的,本发明对网关设备的具体处理细节不作限定。总之,通过该方式,网关设备能够获取到Ajax请求中包含的body体,从而实现安全监控的目的。
步骤S130:接收原生客户端获取到的与该Ajax请求相对应的响应内容,将响应内容发送给网页视图控件中的页面加载函数,以供页面加载函数根据响应内容加载网络页面。
具体地,通过上述桥接代码,接收原生客户端获取到的与Ajax请求相对应的响应内容。另外,在该步骤中,进一步根据JS代码的格式规范,针对原生客户端获取到的与Ajax请求相对应的响应内容进行封装处理,以使该响应内容符合JS格式规范。
由此可见,在本发明所提供的基于Ajax请求的网络页面加载方法中,预先向网页视图控件中注入用于拦截页面加载函数的Hook代码,以便通过Hook代码拦截Ajax请求,并将拦截到的Ajax请求转发给原生客户端,以接收原生客户端获取到的与Ajax请求相对应的响应内容,从而根据响应内容加载网络页面。由此可见,在该方式中,通过Hook代码能够拦截Ajax请求的完整内容,从而便于原生客户端获取到Ajax请求中的完整body体,进而针对Ajax请求实现安全监控,以便提升用户浏览网页的安全性。
为了便于理解,下面以一个具体示例为例详细描述本发明实施例中的实现方式:
发明人在实现本发明的过程中发现:在传统方式中,iOS WKWebView加载网页的时候无法拦截到前端的Ajax的POST请求的请求body体。具体原因在于:由于WKWebView的引擎WebKit是一个独立的进程,所以在进行Ajax请求的时候都是由WebKit进程在处理,然后再通过IPC进程之间的通信传递给原生App(即原生客户端)。由于WebKit在处理POST请求给原生客户端的时候,针对POST的body体中的内容执行了清空处理,由此导致iOS原生客户端无法获取到POST请求body体的内容,进而不利于实现网页安全监控。
为了解决上述问题,在本示例中,iOS WKWebView加载网页的时候通过JS和原生(为描述简便,以下将原生客户端简称为原生)的交互通信运用WKWebView加载前可以植入JS代码的技术,Hook前端的Ajax请求转发到iOS原生中,让原生去发送网络请求。该方案在iOS WKWebView加载网页之前默认植入Hook前端JS的Ajax的网络请求,并通过WKWebView和JS的通信让前端要发送的请求转发到iOS原生中,让iOS客户端通过NSURLSession拼接一个完整的网络请求,然后通过原生返回网络请求的响应结果,拼接成一个Ajax的响应内容。通过WKWebView和JS的通信转发给之前植入到JS的函数代码(即Hook代码)中,由植入的代码将响应结果分发给JS的响应体,由此针对响应结果进行渲染操作,从而实现页面加载过程。
具体地,该方式通过以下步骤实现:
首先,构建要植入到JS中的JS Hook代码,该代码包含三个部分,一个是Hook JS的Ajax网络请求,一个是跟原生WKWebView通信,把拦截到的请求通过JS和原生的交互转发给原生客户端。
然后,Hook原生WKWebView的初始化方法,内置上面写好的JS Hook代码,并通过配置跟JS的通信方法来接收从前端发过来的请求内容。
最后,把原生请求到的内容包装成JS要的格式通过JS和WKWebView的通信转发给JS内置的Hook代码中,再分发给原始的请求中去渲染页面。
具体地,针对其中涉及到的几个模块的功能加以详细说明:
(1)iOS原生:在加载WKWebView的时候通过Hook机制拦截其中的加载函数(即页面加载函数),在该函数中,通过配置WKWebView的WKUserScript进行注入本地的JS代码文件。另外,还需要构建JS跟iOS通信的桥接代码,且承担发送请求的任务。
(2)WKWebView:加载HTML页面,执行相关JS的代码。通过注入的桥接代码,发送JSHook拦截到的Ajax请求代码到iOS原生。
(3)JS:主要为注入的JS Hook代码,当HTML里面的JS代码执行Ajax请求时,JSHook代码拦截到相关的请求内容,并通过桥接代码发送该请求内容到iOS原生,由iOS原生执行对应的处理过程。
图2示出了本发明提供的上述方案的系统原理图。如图2所示,WebView即为上文提到的WKWebView,用于加载HTML页面,具体地,通过WebKit引擎执行加载渲染操作,以使界面渲染完成。其中,当页面需要重新加载时,WebView中的页面加载函数触发Ajax请求,如图中虚线部分所示。常规情况下,该Ajax请求将直接到达服务端,但是,在本发明中,由于预先注入了Hook代码,因此,该Hook代码拦截该Ajax请求,重新组装请求数据,并通过桥接代码(即原生JSBridge),将Ajax请求发送给原生客户端(即原生APP)。由原生客户端将完整的Ajax请求通过网关设备发送给服务端。相应的,当原生客户端接收到服务端通过网关设备返回的响应内容后,通过回调方式,重新组装请求数据,并通过桥接代码(即原生JSBridge),回调给Ajax,从而由WebView根据响应内容进行页面的重新渲染操作。
由此可见,在传统方式中,由于iOS平台WKWebView底层会把网页的每次Ajax的Post请求的body体清空,导致安全网关拦截不到完整的请求。通过本发明中的方案,能够把每次Ajax的请求的完整内容转发到iOS原生客户端,以便由iOS原生客户端向网络侧发起请求。
综上可知,该方式能够获取到前端的所有Ajax请求的域名body体和header头里的内容,由此保证WKWebView的网络请求都是可控的。该方式至少具有如下优势:能够解决运行在安全网关项目上所有的HTML的Ajax的请求丢失body体的问题,从而控制发出的所有Ajax请求。该方式在iOS WKWebView加载网页的时候能够拦截到前端的Ajax的POST请求的请求body体,从而控制iOS客户端应用WKWebView的过程中触发的所有Ajax请求,从而有效控制用户浏览网页的安全性。本发明中的方式能够应用于安全网关设备中,以使安全网关作为沙箱运行,从而监控用户浏览网页中的各项行为。
图3示出了根据本发明又一个实施例的基于Ajax请求的网络页面加载装置的结构示意图,如图3所示,该系统包括:
注入模块31,适于向网页视图控件中注入用于拦截页面加载函数的Hook代码,当检测到由所述页面加载函数触发的Ajax请求时,通过所述Hook代码拦截所述Ajax请求;
转发模块32,适于将拦截到的Ajax请求转发给原生客户端,以供所述原生客户端向服务端获取与所述Ajax请求相对应的响应内容;
加载模块33,适于接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容,将所述响应内容发送给所述网页视图控件中的页面加载函数,以供所述页面加载函数根据所述响应内容加载网络页面。
可选地,所述转发模块具体适于:通过预设的桥接代码,将拦截到的Ajax请求转发给原生客户端;并且,
所述加载模块具体适于:通过所述桥接代码,接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容。
上述各个模块的具体结构和工作原理可参照方法实施例中相应步骤的描述,此处不再赘述。
本发明实施例还提供了一种基于Ajax请求的网络页面加载系统,包括:上述的基于Ajax请求的网络页面加载装置、网关设备、以及服务端。
本申请实施例提供了一种非易失性计算机存储介质,所述计算机存储介质存储有至少一可执行指令,该计算机可执行指令可执行上述任意方法实施例中的基于Ajax请求的网络页面加载方法。
图4示出了根据本发明实施例的一种电子设备的结构示意图,本发明具体实施例并不对电子设备的具体实现做限定。
如图4所示,该电子设备可以包括:处理器(processor)402、通信接口(Communications Interface)404、存储器(memory)406、以及通信总线408。
其中:
处理器402、通信接口404、以及存储器406通过通信总线408完成相互间的通信。
通信接口404,用于与其它设备比如客户端或其它服务器等的网元通信。
处理器402,用于执行程序410,具体可以执行上述域名解析方法实施例中的相关步骤。
具体地,程序410可以包括程序代码,该程序代码包括计算机操作指令。
处理器402可能是中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecific Integrated Circuit),或者是被配置成实施本发明实施例的一个或多个集成电路。电子设备包括的一个或多个处理器,可以是同一类型的处理器,如一个或多个CPU;也可以是不同类型的处理器,如一个或多个CPU以及一个或多个ASIC。
存储器406,用于存放程序410。存储器406可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。
程序410具体可以用于使得处理器402执行上述方法实施例中的各项操作。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的电子设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者系统程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干系统的单元权利要求中,这些系统中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (9)
1.一种基于Ajax请求的网络页面加载方法,包括:
向网页视图控件中注入用于拦截页面加载函数的Hook代码,当检测到由所述页面加载函数触发的Ajax请求时,通过所述Hook代码拦截所述Ajax请求;
将拦截到的Ajax请求转发给原生客户端,以供所述原生客户端向服务端获取与所述Ajax请求相对应的响应内容;
接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容,将所述响应内容发送给所述网页视图控件中的页面加载函数,以供所述页面加载函数根据所述响应内容加载网络页面;
其中,所述将拦截到的Ajax请求转发给原生客户端之后,进一步包括:
所述原生客户端将所述Ajax请求发送给网关设备;
通过网关设备获取所述拦截到的Ajax请求中包含的内容主体,当判断出所述内容主体符合安全规范时,由所述网关设备将所述Ajax请求发送给服务端,以供服务端返回与所述Ajax请求相对应的响应内容。
2.根据权利要求1所述的方法,其中,所述将拦截到的Ajax请求转发给原生客户端包括:通过预设的桥接代码,将拦截到的Ajax请求转发给原生客户端;并且,
所述接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容包括:通过所述桥接代码,接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容。
3.根据权利要求2所述的方法,其中,所述Hook代码为JS代码,则所述通过所述桥接代码,接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容包括:
根据所述JS代码的格式规范,针对所述原生客户端获取到的与所述Ajax请求相对应的响应内容进行封装处理。
4.根据权利要求1所述的方法,其中,所述网页视图控件为WKWebView控件,所述原生客户端为IOS原生客户端。
5.一种基于Ajax请求的网络页面加载装置,包括:
注入模块,适于向网页视图控件中注入用于拦截页面加载函数的Hook代码,当检测到由所述页面加载函数触发的Ajax请求时,通过所述Hook代码拦截所述Ajax请求;
转发模块,适于将拦截到的Ajax请求转发给原生客户端,以供所述原生客户端向服务端获取与所述Ajax请求相对应的响应内容;
其中,所述将拦截到的Ajax请求转发给原生客户端之后,进一步包括:
所述原生客户端将所述Ajax请求发送给网关设备;
通过网关设备获取所述拦截到的Ajax请求中包含的内容主体,当判断出所述内容主体符合安全规范时,由所述网关设备将所述Ajax请求发送给服务端,以供服务端返回与所述Ajax请求相对应的响应内容;
加载模块,适于接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容,将所述响应内容发送给所述网页视图控件中的页面加载函数,以供所述页面加载函数根据所述响应内容加载网络页面。
6.根据权利要求5所述的装置,其中,所述转发模块具体适于:通过预设的桥接代码,将拦截到的Ajax请求转发给原生客户端;并且,
所述加载模块具体适于:通过所述桥接代码,接收所述原生客户端获取到的与所述Ajax请求相对应的响应内容。
7.一种基于Ajax请求的网络页面加载系统,包括:权利要求5或6所述的基于Ajax请求的网络页面加载装置、网关设备、以及服务端。
8.一种电子设备,包括:处理器、存储器、通信接口和通信总线,所述处理器、所述存储器和所述通信接口通过所述通信总线完成相互间的通信;
所述存储器用于存放至少一可执行指令,所述可执行指令使所述处理器执行如权利要求1-4中任一项所述的基于Ajax请求的网络页面加载方法对应的操作。
9.一种计算机存储介质,所述存储介质中存储有至少一可执行指令,所述可执行指令使处理器执行如权利要求1-4中任一项所述的基于Ajax请求的网络页面加载方法对应的操作。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911421478.0A CN111198998B (zh) | 2019-12-31 | 2019-12-31 | 基于Ajax请求的网络页面加载方法、装置及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911421478.0A CN111198998B (zh) | 2019-12-31 | 2019-12-31 | 基于Ajax请求的网络页面加载方法、装置及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111198998A CN111198998A (zh) | 2020-05-26 |
CN111198998B true CN111198998B (zh) | 2023-08-08 |
Family
ID=70746441
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911421478.0A Active CN111198998B (zh) | 2019-12-31 | 2019-12-31 | 基于Ajax请求的网络页面加载方法、装置及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111198998B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112528186B (zh) * | 2020-12-17 | 2023-05-19 | 度小满科技(北京)有限公司 | 一种网页监控方法、装置及系统 |
CN112822020B (zh) * | 2020-12-30 | 2023-12-12 | 新疆联盛科技有限公司 | 网络请求方法、装置、计算机设备及存储介质 |
CN112929447B (zh) * | 2021-03-05 | 2022-09-13 | 深圳市联软科技股份有限公司 | WKWebview组件网络请求接管方法及系统 |
CN113419785B (zh) * | 2021-06-29 | 2023-10-13 | 宝宝巴士股份有限公司 | 一种解决WebView加载本地页面时跨域安全性问题的方法及终端 |
CN113609417A (zh) * | 2021-07-26 | 2021-11-05 | 珠海格力电器股份有限公司 | 移动端页面的处理方法、装置、设备及介质 |
CN114281452A (zh) * | 2021-12-13 | 2022-04-05 | 瑞数信息技术(上海)有限公司 | 应用内嵌页面的处理方法、装置、电子设备及可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102214098A (zh) * | 2011-06-15 | 2011-10-12 | 中山大学 | 一种基于WebKit浏览器引擎的动态页面数据采集方法 |
CN102469113A (zh) * | 2010-11-01 | 2012-05-23 | 北京启明星辰信息技术股份有限公司 | 一种安全网关及其转发网页的方法 |
CN106100936A (zh) * | 2016-08-10 | 2016-11-09 | 乐视控股(北京)有限公司 | 网页性能监控方法和装置及网络服务器、客户端 |
CN106897215A (zh) * | 2017-01-20 | 2017-06-27 | 华南理工大学 | 一种基于WebView网页加载性能及用户行为流数据采集的方法 |
CN109582889A (zh) * | 2018-10-17 | 2019-04-05 | 平安普惠企业管理有限公司 | 图片加载方法、装置、计算机设备及存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9712560B2 (en) * | 2007-11-05 | 2017-07-18 | Cabara Software Ltd. | Web page and web browser protection against malicious injections |
-
2019
- 2019-12-31 CN CN201911421478.0A patent/CN111198998B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102469113A (zh) * | 2010-11-01 | 2012-05-23 | 北京启明星辰信息技术股份有限公司 | 一种安全网关及其转发网页的方法 |
CN102214098A (zh) * | 2011-06-15 | 2011-10-12 | 中山大学 | 一种基于WebKit浏览器引擎的动态页面数据采集方法 |
CN106100936A (zh) * | 2016-08-10 | 2016-11-09 | 乐视控股(北京)有限公司 | 网页性能监控方法和装置及网络服务器、客户端 |
CN106897215A (zh) * | 2017-01-20 | 2017-06-27 | 华南理工大学 | 一种基于WebView网页加载性能及用户行为流数据采集的方法 |
CN109582889A (zh) * | 2018-10-17 | 2019-04-05 | 平安普惠企业管理有限公司 | 图片加载方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111198998A (zh) | 2020-05-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111198998B (zh) | 基于Ajax请求的网络页面加载方法、装置及系统 | |
CN109933443B (zh) | 进程间通信方法、装置、计算机设备及可读存储介质 | |
US11036534B2 (en) | Techniques for serverless runtime application self-protection | |
JP5982586B2 (ja) | ハイブリッドアプリケーションのためのリソース呼び出し | |
CN107070870B (zh) | 一种数据获取方法和装置 | |
US20140143644A1 (en) | Web browser page transition acceleration | |
CN108574709B (zh) | 跨域操作的实现方法和装置 | |
CN110750255B (zh) | 一种小程序渲染方法和装置 | |
US8539506B2 (en) | Dynamic injection of code into running process | |
US20030067480A1 (en) | System and method of data transmission for computer networks utilizing HTTP | |
US11023558B1 (en) | Executing functions on-demand on a server utilizing web browsers | |
CN105095220B (zh) | 一种浏览器实现方法、终端和虚拟化代理装置 | |
US10506017B2 (en) | Manipulation of PDF file content through HTTP requests | |
US9170786B1 (en) | Composable context menus | |
CN111880788A (zh) | 页面渲染方法、装置、客户端和计算机可读存储介质 | |
US20140245124A1 (en) | System and method thereof for browser agnostic extension models | |
CN111079048B (zh) | 一种页面加载方法及装置 | |
CN109800370A (zh) | 网页页面的显示方法、装置、计算机设备及存储介质 | |
CN109725887B (zh) | 基于消息研发框架的数据交互方法、装置及终端设备 | |
CN113094612A (zh) | 客户端加载网页的方法、装置、电子设备及介质 | |
CN112926002A (zh) | 一种服务请求的处理方法及装置 | |
CN109460215B (zh) | 应用控制方法及装置 | |
CN112818270A (zh) | 数据跨域传递方法、装置及计算机设备 | |
CN111880789A (zh) | 页面渲染方法、装置、服务端和计算机可读存储介质 | |
CN113536168B (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 |