CN107315784A - 一种数据访问方法和浏览器 - Google Patents
一种数据访问方法和浏览器 Download PDFInfo
- Publication number
- CN107315784A CN107315784A CN201710431115.XA CN201710431115A CN107315784A CN 107315784 A CN107315784 A CN 107315784A CN 201710431115 A CN201710431115 A CN 201710431115A CN 107315784 A CN107315784 A CN 107315784A
- Authority
- CN
- China
- Prior art keywords
- target data
- ajax
- data
- request
- server
- 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.)
- Granted
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/958—Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (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
本发明公开了一种数据访问方法和浏览器。所述方法应用于包含Flask控制层和Ajax端的浏览器中,所述方法包括:Flask控制层接收Ajax端发送的至少一个HTTP请求;根据各HTTP请求携带的参数信息,确定各HTTP请求所请求的至少一种目标数据;分别向不同种类的目标数据所对应的程序接口发送数据获取请求,数据获取请求指示请求指定种类的目标数据;将服务器通过程序接口传送的目标数据反馈给Ajax端。本发明实施例使用增设的Flask控制层对Ajax端和服务器进行数据传输控制,由于Flask控制层与服务器提供的程序接口间的数据传输不存在跨域问题,因此本发明实施例基于Flask控制层的设置,实现Ajax端和服务器间的数据交互的同时,又解决了前后端数据交互中产生的跨域问题,无需任何人工设置。
Description
技术领域
本发明涉及信息技术领域,特别涉及一种数据访问方法,以及一种浏览器。
背景技术
为了实现浏览器对网站页面的安全浏览,防止其他网站的web攻击,目前会在浏览器内设置跨域保护机制,使浏览器对javascript脚本施加安全限制。但是,基于浏览器跨域保护机制的存在,使得浏览器不能直接访问服务器提供的程序接口,否则就会报错,导致数据拉取失败。
现有技术可以通过对浏览器的属性进行设置来解决浏览器的跨域问题,如对浏览器的网络安全属性进行设置,具体运行项目时,针对每个运行的项目,均需要对浏览器进行一次属性设置,否则就会报错。因此,现有技术需要依靠用户操作才能完成,操作智能性差,同时对浏览器的属性的设置增加了用户操作,用户体验较差。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的数据访问方法和相应的浏览器。
依据本发明的一个方面,提供了一种数据访问方法,所述方法应用于包含Flask控制层和Ajax端的浏览器中,所述方法包括:
Flask控制层接收Ajax端发送的至少一个HTTP请求;
根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据;
分别向不同种类的目标数据所对应的程序接口发送数据获取请求,所述数据获取请求指示请求指定种类的目标数据;
将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端。
可选的,在所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端之前,所述方法还包括:
接收所述服务器通过所述程序接口传送的数据;
判断所述数据是否为请求的所述目标数据;
如果是,则执行所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端的步骤;
如果否,则向所述Ajax端发送请求失败的提示信息。
可选的,在所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端之前,所述方法还包括:
在所述程序接口判定所述Ajax端的权限信息满足预设的权限规则,以及所述服务器获取到请求的所述目标数据后,接收所述服务器通过所述程序接口传送的所述目标数据。
可选的,在所述根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据之前,所述方法还包括:
判断所述HTTP请求携带的参数信息是否符合预设信息要求;
如果是,则执行所述根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据的步骤;
如果否,则向所述Ajax端发送指示携带的参数信息不符合预设信息要求的指示信息。
可选的,Flask控制层的数目为多个,所述服务器的多个程序接口中的任一程序接口与一个Flask控制层对应连接。
依据本发明的另一个方面,还提供了一种浏览器,所述浏览器包括:
HTTP请求接收模块,用于Flask控制层接收Ajax端发送的至少一个HTTP请求;
目标数据确定模块,用于根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据;
数据获取请求发送模块,用于分别向不同种类的目标数据所对应的程序接口发送数据获取请求,所述数据获取请求指示请求指定种类的目标数据;
目标数据反馈模块,用于将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端。
可选的,所述浏览器还包括:
数据接收模块,用于在所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端之前,接收所述服务器通过所述程序接口传送的数据;
数据判断模块,用于判断所述数据是否为请求的所述目标数据;
所述目标数据反馈模块,具体用于当所述数据为请求的所述目标数据时,将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端的步骤;
提示信息发送模块,用于当判定所述数据并非为请求的所述目标数据时,向所述Ajax端发送请求失败的提示信息。
可选的,所述浏览器还包括:
目标数据接收模块,用于在所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端之前,在所述程序接口判定所述Ajax端的权限信息满足预设的权限规则,以及所述服务器获取到请求的所述目标数据后,接收所述服务器通过所述程序接口传送的所述目标数据。
可选的,所述浏览器还包括:
参数信息判断模块,用于在所述根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据之前,判断所述HTTP请求携带的参数信息是否符合预设信息要求;
所述目标数据确定模块,具体用于当所述HTTP请求携带的参数信息符合所述预设信息要求,则根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据;
指示信息发送模块,用于当所述HTTP请求携带的参数信息不符合所述预设信息要求,则向所述Ajax端发送指示携带的参数信息不符合预设信息要求的指示信息。
可选的,Flask控制层的数目为多个,所述服务器的多个程序接口中的任一程序接口与一个Flask控制层对应连接。
依据本发明实施例,在Ajax端和服务器之间增设了Flask控制层,Flask控制层对Ajax端和服务器进行数据传递和数据处理,由于Flask控制层与服务器提供的程序接口间的数据传输不存在跨域问题,因此本发明实施例基于Flask控制层的设置,在实现Ajax端和服务器间的数据交互的同时,又解决了前后端数据交互中产生的跨域问题,并且无需任何人工设置,用户体验较好。
由于对请求的目标数据的逻辑判断由Flask控制层执行,因此省去了Ajax端对请求的目标数据的逻辑判断,减轻了Ajax端的工作量,保证了Ajax端的性能。
Flask控制层在接收到Ajax端发送的HTTP请求后,还可以判断HTTP请求携带的参数信息是否符合预设信息要求,并且只将符合预设信息要求的HTTP请求发送至服务器,而针对不符合预设信息要求的HTTP请求,Flask控制层会向Ajax端发送指示信息,告知Ajax端参数信息不符合预设信息要求,从而实现了Flask控制层对不符合要求的HTTP请求的过滤,丰富了Flask控制层的功能。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了根据本发明实施例1的一种数据访问方法的流程图;
图2示出了根据本发明实施例2的一种数据访问方法的流程图;
图3示出了根据本发明实施例2中的多个Flask控制层的结构关系框图;
图4示出了根据本发明实施例1的一种浏览器的结构框图;
图5示出了根据本发明实施例2的一种浏览器的结构框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
参照图1,示出了根据本发明实施例1的一种数据访问方法的流程图,所述方法具体可以包括:
步骤101、Flask控制层接收Ajax端发送的至少一个HTTP请求。
Flask是一个轻量级的Web应用框架,使用Python计算机程序设计语言编写。本发明实施例中的Flask控制层是基于Flask应用框架设计的。
Ajax的全称为Asynchronous Javascript AndXML,即异步JavaScript和XML,是指一种创建交互式网页应用的网页开发技术。本发明实施例中,Ajax端是应用Ajax技术的客户端。
HTTP请求是指从客户端到服务器端的请求消息,本发明实施例中,HTTP请求是指从Ajax端到服务器端的请求消息。
本发明实施例在Ajax端和服务器之间增设了Flask控制层。Flask控制层用于对Ajax端发送的HTTP请求和服务器反馈的数据进行处理,解决浏览器跨域问题,实现对跨域数据的拉取。
本发明实施例中,Ajax端预从服务器获取所需数据时,会向Flask控制层发送HTTP请求,具体地可以通过访问Flask控制层的链接地址,向Flask控制层发送HTTP请求。由于后端服务器的一个程序接口只能返回设定的一种数据,而Ajax端请求的数据可能为一种数据,也可能为多种数据的集合,因此当Ajax端请求的数据为多种时,Ajax端需要同时发送针对不同种类数据的多个HTTP请求。
在Ajax端向Flask控制层发送至少一个HTTP请求后,相应地,Flask控制层会接收到Ajax端发送的至少一个HTTP请求。
步骤102、根据各HTTP请求携带的参数信息,确定各HTTP请求所请求的至少一种目标数据。
HTTP请求可以携带多种参数信息,如HTTP请求的头部信息包括请求地址(RequestURL)、请求方式(Request Method)、状态码(Status Code)、远程地址(RemoteAddress)、内容类型(Content-Type)以及身份标识(token)等信息。Flask控制层在接收到HTTP请求后,会对HTTP请求进行分析,提取请求携带的参数信息。当HTTP请求为多个时,对各HTTP请求进行参数提取,并且进一步根据提取的参数信息,确定请求的多个种类的目标数据。
具体地,HTTP请求的头部信息的请求地址可以包括指示所需目标数据的特征信息,可以从请求地址中提取出指示所需目标数据的特征信息,从而根据特征信息确定所需目标数据。可以提取并识别HTTP请求中的请求方式,从而确定对所需的目标数据的处理方式。
步骤103、分别向不同种类的目标数据所对应的程序接口发送数据获取请求,数据获取请求指示请求指定种类的目标数据。
Flask控制层确定请求的至少一种目标数据后,由于后端服务器的程序接口只能返回特定的单一种类的数据,服务器针对不同种类的数据设置了多个程序接口,因此当目标数据的种类为多个时,需要分别向不同种类的目标数据所对应的程序接口发送数据获取请求,数据获取请求指示请求指定种类的目标数据。
例如,Flask控制层确定请求的目标数据包括idc列表和用户权限两种,向服务器的api-1程序接口发送获取idc列表的数据获取请求,向服务器的api-2程序接口发送获取用户权限的数据获取请求。
步骤104、将服务器通过程序接口传送的目标数据反馈给所述Ajax端。
服务器在通过程序接口接收到Flask控制层发送的数据获取请求后,会根据数据获取请求,获取所需的目标数据,之后通过同样的程序接口将获取的目标数据传送给Flask控制层。进一步,Flask控制层会将服务器传送的目标数据反馈给Ajax端供其使用。
本发明实施例中,由于Flask控制层与后端服务器的程序接口不存在跨域问题,因此可以有效解决背景技术中浏览器跨域问题,实现前端与后端的数据跨域传输。
依据本发明实施例,在Ajax端和服务器之间增设了Flask控制层,Flask控制层对Ajax端和服务器进行数据传递和数据处理,由于Flask控制层与服务器提供的程序接口间的数据传输不存在跨域问题,因此本发明实施例基于Flask控制层的设置,在实现Ajax端和服务器间的数据交互的同时,又解决了前后端数据交互中产生的跨域问题,并且无需任何人工设置,用户体验较好。
由于对请求的目标数据的逻辑判断由Flask控制层执行,因此省去了Ajax端对请求的目标数据的逻辑判断,减轻了Ajax端的工作量,保证了Ajax端的性能。
参照图2,示出了根据本发明实施例2的一种数据访问方法的流程图,所述方法应用于包含Flask控制层和Ajax端的浏览器中,所述方法具体可以包括:
步骤201、Flask控制层接收Ajax端发送的至少一个HTTP请求。
本发明实施例在Ajax端和服务器之间增设了Flask控制层,用于在Ajax端和服务器之间进行数据传输以及数据处理,实现了Ajax端与服务器的交互,由于Flask控制层与服务器之间的数据传输不存在跨域问题,因此有效解决了前后端数据交互中产生的跨域问题,在任何操作系统的任何浏览器都能正常运行,无需对浏览器的属性进行设置,提高了用户体验。
由于服务器提供的一个程序接口只能返回设定的一种数据,因此当Ajax端所需多种数据时,需要同时向服务器的不同程序接口发送针对不同种类数据的多个HTTP请求。相应地,Flask控制层会接收Ajax端发送的至少一个HTTP请求。
步骤202、判断HTTP请求携带的参数信息是否符合预设信息要求。
Ajax端发送的HTTP请求携带有参数信息,有时基于程序操作或其他原因,使得HTTP请求携带的参数信息不符合预设信息要求,其中预设信息要求可以为多种形式,如参数不为空集、参数为整数、参数为字符串等。因此,本发明实施例中Flask控制层接收Ajax端发送的至少一个HTTP请求后,需要判断HTTP请求携带的参数信息是否符合预设信息要求。
步骤203、如果HTTP请求携带的参数信息不符合预设信息要求,则向Ajax端发送指示携带的参数信息不符合预设信息要求的指示信息。
当判定HTTP请求携带的参数信息不符合预设信息要求后,Flask控制层会向Ajax端发送指示携带的参数信息不符合预设信息要求的指示信息,以通知Ajax端或终端用户。
步骤204、如果HTTP请求携带的参数信息符合预设信息要求,根据各HTTP请求携带的参数信息,确定各HTTP请求所请求的至少一种目标数据。
当判定HTTP请求携带的参数信息符合预设信息要求后,Flask控制层会对HTTP请求携带的参数信息进行提取和分析,确定请求的目标数据。当HTTP请求为多个时,对各HTTP请求进行参数提取,进一步确定请求的多个种类的目标数据。
HTTP请求可以携带多种参数信息,如HTTP请求的头部信息(header)包括请求地址(RequestURL)、请求方式(RequestMethod)、状态码(Status Code)、远程地址(RemoteAddress)、内容类型(Content-Type)以及身份标识(token)等信息。
进一步,头部信息的请求地址可以包括指示所需目标数据的特征信息,相应地,本步骤根据各HTTP请求携带的参数信息,确定各HTTP请求所请求的至少一种目标数据的步骤可以包括:首先,提取HTTP请求携带的请求地址;其次,从请求地址中识别指示目标数据的特征信息;最后,根据识别的特征信息,确定请求的至少一种目标数据。例如,向“/api/projects”接口发送HTTP请求,如果该HTTP请求的请求地址包括指示所需目标数据的特征信息“/api/projects?id=123”,则Flask控制层确定请求的目标数据为id为123的详细信息,进一步如果HTTP请求中的请求方式为“GET”,则该HTTP请求为查询id为123详细信息。
步骤205、分别向不同种类的目标数据所对应的程序接口发送数据获取请求。
服务器配置有多个程序接口,用于传输不同种类的数据。实际设置中,Flask控制层的数目可以设置为多个,服务器的多个程序接口中的任一程序接口与一个Flask控制层对应连接,这时存在多组Ajax端—Flask控制层—api的对应关系。图3示出了本发明实施例中的多个Flask控制层的结构关系框图,由图3可知,Flask控制层的数目为两个,两个Flask控制层与Ajax端连接,Flask控制层1与api1和api2连接,Flask控制层2与api3连接。
因此当Flask控制层的数目为多个时,所述Ajax端向Flask控制层发送至少一个HTTP请求的步骤可以包括:Ajax端基于所述HTTP请求所请求的目标数据的种类,确定与所述目标数据对应设置的程序接口连接的Flask控制层;向确定的Flask控制层发送所述HTTP请求。
步骤206、将服务器通过程序接口传送的目标数据反馈给Ajax端。
服务器通过程序接口接收到数据获取请求后,会获取到请求的目标数据,并将目标数据通过相应的程序接口传送给Flask控制层。Flask控制层接收到服务器传送的目标数据后,将该目标数据反馈给Ajax端,完成目标数据的请求。
为使本领域技术人员更清楚地理解本发明实施例中,Ajax端发送的HTTP请求以及Flask控制层对应发送的数据获取请求,下面对Ajax端发送的HTTP请求的代码、以及Flask控制层对应发送的数据获取请求的代码进行举例说明,代码如下:
上述代码对应的执行过程为:Ajax端向Flask控制层发送参数'xxx'的请求,该参数为json格式,如果请求成功,则接口返回所需数据,对所需数据进行相应操作;如果请求失败,则接口反馈错误信息,对错误进行相应操作。Flask控制层接收Ajax端发送的参数请求,获取请求的所需数据后通过接口,将所需数据返回给Ajax端。
本发明实施例在将服务器通过程序接口传送的目标数据反馈给Ajax端之前,所述方法还可以包括:接收服务器通过程序接口传送的数据。由于服务器传送给Flask控制层的数据可能为目标数据,也可能是其他数据,因此本发明实施例所述方法还可以包括:判断数据是否为请求的目标数据,如果判定服务器传送的数据为请求的目标数据,则执行将服务器通过程序接口传送的目标数据反馈给Ajax端的步骤;如果判定服务器传送的数据并非为请求的目标数据,则向Ajax端发送请求失败的提示信息。
或者Flask控制层还可以对服务器反馈的数据进行判断,当判定请求到所需的目标数据后,可以针对目标数据配置一特征值a,将目标数据与特征值a一同发送给Ajax端;当判定未请求到所需的目标数据后,可以针对返回数据配置另一特征值b,将返回数据与特征值b一同发送给Ajax端。相应地,Ajax端可以识别Flask控制层返回的数据所包括的特征值的种类,从而判断是否接收到所需的目标数据。
例如:获取到目标数据时Flask控制层发送目标数据给Ajax端所对应的一段代码为:
目标数据获取失败时Flask控制层发送数据给Ajax端所对应的一段代码为:
代码里的“status”信息指示目标数据是否请求成功,其中,“0”指示目标数据请求成功,“1”指示目标数据请求失败。
如果Ajax端识别到“0”,则直接从代码中提取所需的目标数据;如果Ajax端识别到“1”,则直接提示代码中“msg”的信息。
如果Flask控制层从服务器接收的数据包括请求的目标数据及其他数据时如Ajax端相关信息,则本发明实施例为减少向Ajax端发送的数据的大小,提高数据传输速度,可以在将服务器通过程序接口传送的目标数据反馈给Ajax端之前,对接收的数据进行提取,从接收的数据中提取出Ajax端请求的目标数据,之后仅将目标数据发送给Ajax端。
例如,Flask控制层向服务器的程序接口发送的数据获取请求的代码如下:@app.route('/xxx)
上段代码包含了三个数据获取请求,对应请求了服务器的三个api程序接口,三个数据获取请求分别为:1、获取idc列表;2、请求用户权限;3、index列表。由上述代码可知,Flask控制层可以将Ajax端发送的多个HTTP请求整合成为一个数据获取请求,从而减少了向服务器端发送请求的次数。
针对第一个数据获取请求,只需请求列表,但是api接口还会返回一些其他数据,如权限接口;针对第二个数据获取请求,只需请求用户权限,但是api接口还会返回如用户名、电话、权限和家庭住址等信息,这时Flask控制层会对接收的数据进行过滤,从中提取出请求的目标数据,将idc列表:idcs,权限:authority,index列表:indexlist放入一个目标文件里{idcs:idcs,authority:authority,indexlist:indexlist},返回给Ajax端,该目标文件中的数据均为Ajax端所需的有用信息。Flask控制层对服务器传送的数据进行过滤,提取出所需的目标数据,仅将所需的目标数据发送给Ajax端,从而减少了HTTP传输数据的大小,提高了HTTP传输数据的传输速度。
本发明实施例可以预先在服务器端记录不同Ajax端所对应的权限信息,如可以在服务器内的预设数据库中记录不同Ajax端的端标识与权限信息的对应关系,服务器的程序接口在接收到Flask控制层发送的数据获取请求后,从预先针对不同Ajax端记录的权限信息中,查找当前Ajax端所对应的权限信息,并且进一步判断当前Ajax端的权限信息是否满足预设的权限规则,如判断当前Ajax端的用户级别是否大于预设的用户级别阈值,如果满足,则将该数据获取请求通过程序接口发送至服务器内,服务器会根据数据获取请求进行数据获取,之后将获取的数据通过对应的程序接口传送至Flask控制层。相应地,Flask控制层在服务器的程序接口判定Ajax端的权限信息满足预设的权限规则,以及服务器获取到请求的目标数据后,接收服务器通过程序接口传送的目标数据。
如果服务器判定Ajax端的权限信息不满足预设的权限规则,或者未在预设记录中查找到当前Ajax端对应的用户级别,则服务器可以向Flask控制层发送请求失败的通知,该通知可以包括指示请求失败的指示信息,该指示信息同样可以为多种形式,如预设数字或预设字母,该通知还可以包括请求失败的原因等其他相关信息,如未找到Ajax端的用户级别或Ajax端的用户级别较低等信息。进一步,Flask控制层可以向Ajax端发送请求失败的通知,通知可以携带服务器反馈的请求失败的原因。
依据本发明实施例,在Ajax端和服务器之间增设了Flask控制层,Flask控制层对Ajax端和服务器进行数据传递和数据处理,由于Flask控制层与服务器提供的程序接口间的数据传输不存在跨域问题,因此本发明实施例基于Flask控制层的设置,在实现Ajax端和服务器间的数据交互的同时,又解决了前后端数据交互中产生的跨域问题,并且无需任何人工设置,用户体验较好。
由于对请求的目标数据的逻辑判断由Flask控制层执行,因此省去了Ajax端对请求的目标数据的逻辑判断,减轻了Ajax端的工作量,保证了Ajax端的性能。
Flask控制层在接收到Ajax端发送的HTTP请求后,还可以判断HTTP请求携带的参数信息是否符合预设信息要求,并且只将符合预设信息要求的HTTP请求发送至服务器,而针对不符合预设信息要求的HTTP请求,Flask控制层会向Ajax端发送指示信息,告知Ajax端参数信息不符合预设信息要求,从而实现了Flask控制层对不符合要求的HTTP请求的过滤,丰富了Flask控制层的功能。
基于上述方法实施例的说明,本发明还提供了相应的浏览器实施例,来实现上述方法实施例所述的内容。
参照图3,示出了根据本发明实施例1的一种浏览器的结构框图,所述浏览器可以包括:
HTTP请求接收模块301,用于Flask控制层接收Ajax端发送的至少一个HTTP请求。
目标数据确定模块302,用于根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据。
数据获取请求发送模块303,用于分别向不同种类的目标数据所对应的程序接口发送数据获取请求,所述数据获取请求指示请求指定种类的目标数据。
目标数据反馈模块304,用于将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端。
依据本发明实施例,在Ajax端和服务器之间增设了Flask控制层,Flask控制层对Ajax端和服务器进行数据传递和数据处理,由于Flask控制层与服务器提供的程序接口间的数据传输不存在跨域问题,因此本发明实施例基于Flask控制层的设置,在实现Ajax端和服务器间的数据交互的同时,又解决了前后端数据交互中产生的跨域问题,并且无需任何人工设置,用户体验较好。
由于对请求的目标数据的逻辑判断由Flask控制层执行,因此省去了Ajax端对请求的目标数据的逻辑判断,减轻了Ajax端的工作量,保证了Ajax端的性能。
参照图4,示出了根据本发明实施例2的一种浏览器的结构框图,所述浏览器可以包括:
HTTP请求接收模块401,用于Flask控制层接收Ajax端发送的至少一个HTTP请求。
参数信息判断模块402,用于判断所述HTTP请求携带的参数信息是否符合预设信息要求。
指示信息发送模块403,用于当所述HTTP请求携带的参数信息不符合所述预设信息要求,则向所述Ajax端发送指示携带的参数信息不符合预设信息要求的指示信息。
目标数据确定模块404,用于当所述HTTP请求携带的参数信息符合所述预设信息要求,则根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据。
数据获取请求发送模块405,用于分别向不同种类的目标数据所对应的程序接口发送数据获取请求,所述数据获取请求指示请求指定种类的目标数据。
目标数据反馈模块406,用于将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端。
本发明实施例中,优选地,所述浏览器还包括:
数据接收模块,用于在所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端之前,接收所述服务器通过所述程序接口传送的数据;
数据判断模块,用于判断所述数据是否为请求的所述目标数据;
所述目标数据反馈模块,具体用于当所述数据为请求的所述目标数据时,将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端的步骤;
提示信息发送模块,用于当判定所述数据并非为请求的所述目标数据时,向所述Ajax端发送请求失败的提示信息。
本发明实施例中,优选地,所述浏览器还包括:
目标数据接收模块,用于在所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端之前,在所述程序接口判定所述Ajax端的权限信息满足预设的权限规则,以及所述服务器获取到请求的所述目标数据后,接收所述服务器通过所述程序接口传送的所述目标数据。
本发明实施例中,优选地,Flask控制层的数目为多个,所述服务器的多个程序接口中的任一程序接口与一个Flask控制层对应连接。
依据本发明实施例,在Ajax端和服务器之间增设了Flask控制层,Flask控制层对Ajax端和服务器进行数据传递和数据处理,由于Flask控制层与服务器提供的程序接口间的数据传输不存在跨域问题,因此本发明实施例基于Flask控制层的设置,在实现Ajax端和服务器间的数据交互的同时,又解决了前后端数据交互中产生的跨域问题,并且无需任何人工设置,用户体验较好。
由于对请求的目标数据的逻辑判断由Flask控制层执行,因此省去了Ajax端对请求的目标数据的逻辑判断,减轻了Ajax端的工作量,保证了Ajax端的性能。
Flask控制层在接收到Ajax端发送的HTTP请求后,还可以判断HTTP请求携带的参数信息是否符合预设信息要求,并且只将符合预设信息要求的HTTP请求发送至服务器,而针对不符合预设信息要求的HTTP请求,Flask控制层会向Ajax端发送指示信息,告知Ajax端参数信息不符合预设信息要求,从而实现了Flask控制层对不符合要求的HTTP请求的过滤,丰富了Flask控制层的功能。
对于上述编码模式判断装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见图1-图3所示方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域技术人员易于想到的是:上述各个实施例的任意组合应用都是可行的,故上述各个实施例之间的任意组合都是本发明的实施方案,但是由于篇幅限制,本说明书在此就不一一详述了。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的浏览器中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
Claims (10)
1.一种数据访问方法,其特征在于,所述方法应用于包含Flask控制层和Ajax端的浏览器中,所述方法包括:
Flask控制层接收Ajax端发送的至少一个HTTP请求;
根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据;
分别向不同种类的目标数据所对应的程序接口发送数据获取请求,所述数据获取请求指示请求指定种类的目标数据;
将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端。
2.根据权利要求1所述的方法,其特征在于,在所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端之前,所述方法还包括:
接收所述服务器通过所述程序接口传送的数据;
判断所述数据是否为请求的所述目标数据;
如果是,则执行所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端的步骤;
如果否,则向所述Ajax端发送请求失败的提示信息。
3.根据权利要求1所述的方法,其特征在于,在所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端之前,所述方法还包括:
在所述程序接口判定所述Ajax端的权限信息满足预设的权限规则,以及所述服务器获取到请求的所述目标数据后,接收所述服务器通过所述程序接口传送的所述目标数据。
4.根据权利要求1所述的方法,其特征在于,在所述根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据之前,所述方法还包括:
判断所述HTTP请求携带的参数信息是否符合预设信息要求;
如果是,则执行所述根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据的步骤;
如果否,则向所述Ajax端发送指示携带的参数信息不符合预设信息要求的指示信息。
5.根据权利要求1所述的方法,其特征在于,Flask控制层的数目为多个,所述服务器的多个程序接口中的任一程序接口与一个Flask控制层对应连接。
6.一种浏览器,其特征在于,所述浏览器包括:
HTTP请求接收模块,用于Flask控制层接收Ajax端发送的至少一个HTTP请求;
目标数据确定模块,用于根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据;
数据获取请求发送模块,用于分别向不同种类的目标数据所对应的程序接口发送数据获取请求,所述数据获取请求指示请求指定种类的目标数据;
目标数据反馈模块,用于将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端。
7.根据权利要求6所述的浏览器,其特征在于,所述浏览器还包括:
数据接收模块,用于在所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端之前,接收所述服务器通过所述程序接口传送的数据;
数据判断模块,用于判断所述数据是否为请求的所述目标数据;
所述目标数据反馈模块,具体用于当所述数据为请求的所述目标数据时,将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端的步骤;
提示信息发送模块,用于当判定所述数据并非为请求的所述目标数据时,向所述Ajax端发送请求失败的提示信息。
8.根据权利要求6所述的浏览器,其特征在于,所述浏览器还包括:
目标数据接收模块,用于在所述将服务器通过所述程序接口传送的目标数据反馈给所述Ajax端之前,在所述程序接口判定所述Ajax端的权限信息满足预设的权限规则,以及所述服务器获取到请求的所述目标数据后,接收所述服务器通过所述程序接口传送的所述目标数据。
9.根据权利要求6所述的浏览器,其特征在于,所述浏览器还包括:
参数信息判断模块,用于在所述根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据之前,判断所述HTTP请求携带的参数信息是否符合预设信息要求;
所述目标数据确定模块,具体用于当所述HTTP请求携带的参数信息符合所述预设信息要求,则根据各HTTP请求携带的参数信息,确定所述各HTTP请求所请求的至少一种目标数据;
指示信息发送模块,用于当所述HTTP请求携带的参数信息不符合所述预设信息要求,则向所述Ajax端发送指示携带的参数信息不符合预设信息要求的指示信息。
10.根据权利要求6所述的浏览器,其特征在于,Flask控制层的数目为多个,所述服务器的多个程序接口中的任一程序接口与一个Flask控制层对应连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710431115.XA CN107315784B (zh) | 2017-06-07 | 2017-06-07 | 一种数据访问方法和浏览器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710431115.XA CN107315784B (zh) | 2017-06-07 | 2017-06-07 | 一种数据访问方法和浏览器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107315784A true CN107315784A (zh) | 2017-11-03 |
CN107315784B CN107315784B (zh) | 2020-01-31 |
Family
ID=60182203
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710431115.XA Active CN107315784B (zh) | 2017-06-07 | 2017-06-07 | 一种数据访问方法和浏览器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107315784B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347914A (zh) * | 2018-09-13 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种基于Python Flask及装饰器的处理浏览器请求的方法及装置 |
CN110166730A (zh) * | 2019-06-06 | 2019-08-23 | 苏州科达科技股份有限公司 | 一种请求处理方法、装置、设备及可读存储介质 |
CN111162879A (zh) * | 2019-12-23 | 2020-05-15 | 五八有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902492A (zh) * | 2009-05-27 | 2010-12-01 | 阿里巴巴集团控股有限公司 | Web Service服务器、网站建设方法及信息交互方法 |
CN103118137A (zh) * | 2013-03-01 | 2013-05-22 | 畅捷通信息技术股份有限公司 | 跨域访问页面装置和跨域访问页面方法 |
CN104243506A (zh) * | 2013-06-06 | 2014-12-24 | 中兴通讯股份有限公司 | 浏览器重定向方法及装置 |
CN104301443A (zh) * | 2014-10-09 | 2015-01-21 | 百度在线网络技术(北京)有限公司 | 一种在web页面上调用端能力接口的方法和系统 |
CN104426862A (zh) * | 2013-08-27 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 实现跨域请求登录的方法、系统及浏览器 |
CN104468698A (zh) * | 2014-10-11 | 2015-03-25 | 杭州盈高科技有限公司 | 一种跨浏览器的网页通信系统及方法 |
CN104572099A (zh) * | 2014-12-31 | 2015-04-29 | 深圳市酷开网络科技有限公司 | 基于组件和中间件的低耦合框架数据处理方法及系统 |
CN105045887A (zh) * | 2015-07-24 | 2015-11-11 | 苏州工业园区迪锐信信息科技有限责任公司 | 混合模式跨域数据交互的系统及其方法 |
CN105871947A (zh) * | 2015-01-20 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 跨域请求数据的方法及装置 |
CN106027619A (zh) * | 2016-05-11 | 2016-10-12 | 上海佳依佳信息科技有限公司 | 一种用于处理基于jsonp的请求的方法与设备 |
CN106790465A (zh) * | 2016-12-09 | 2017-05-31 | 深圳市小满科技有限公司 | 跨域访问方法和装置 |
-
2017
- 2017-06-07 CN CN201710431115.XA patent/CN107315784B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902492A (zh) * | 2009-05-27 | 2010-12-01 | 阿里巴巴集团控股有限公司 | Web Service服务器、网站建设方法及信息交互方法 |
CN103118137A (zh) * | 2013-03-01 | 2013-05-22 | 畅捷通信息技术股份有限公司 | 跨域访问页面装置和跨域访问页面方法 |
CN104243506A (zh) * | 2013-06-06 | 2014-12-24 | 中兴通讯股份有限公司 | 浏览器重定向方法及装置 |
CN104243506B (zh) * | 2013-06-06 | 2019-05-10 | 中兴通讯股份有限公司 | 浏览器重定向方法及装置 |
CN104426862A (zh) * | 2013-08-27 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 实现跨域请求登录的方法、系统及浏览器 |
CN104301443A (zh) * | 2014-10-09 | 2015-01-21 | 百度在线网络技术(北京)有限公司 | 一种在web页面上调用端能力接口的方法和系统 |
CN104468698A (zh) * | 2014-10-11 | 2015-03-25 | 杭州盈高科技有限公司 | 一种跨浏览器的网页通信系统及方法 |
CN104572099A (zh) * | 2014-12-31 | 2015-04-29 | 深圳市酷开网络科技有限公司 | 基于组件和中间件的低耦合框架数据处理方法及系统 |
CN105871947A (zh) * | 2015-01-20 | 2016-08-17 | 阿里巴巴集团控股有限公司 | 跨域请求数据的方法及装置 |
CN105045887A (zh) * | 2015-07-24 | 2015-11-11 | 苏州工业园区迪锐信信息科技有限责任公司 | 混合模式跨域数据交互的系统及其方法 |
CN106027619A (zh) * | 2016-05-11 | 2016-10-12 | 上海佳依佳信息科技有限公司 | 一种用于处理基于jsonp的请求的方法与设备 |
CN106790465A (zh) * | 2016-12-09 | 2017-05-31 | 深圳市小满科技有限公司 | 跨域访问方法和装置 |
Non-Patent Citations (1)
Title |
---|
非梦NJ: ""Flask_Ajax设置Access-Control-Allow-Origin实现跨域访问;Ajax页面底部自动记载"", 《HTTPS://BLOG.CSDN.NET/KEVIN_QQ/ARTICLE/DETAILS/51761654》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109347914A (zh) * | 2018-09-13 | 2019-02-15 | 郑州云海信息技术有限公司 | 一种基于Python Flask及装饰器的处理浏览器请求的方法及装置 |
CN110166730A (zh) * | 2019-06-06 | 2019-08-23 | 苏州科达科技股份有限公司 | 一种请求处理方法、装置、设备及可读存储介质 |
CN110166730B (zh) * | 2019-06-06 | 2021-08-27 | 苏州科达科技股份有限公司 | 一种请求处理方法、装置、设备及可读存储介质 |
CN111162879A (zh) * | 2019-12-23 | 2020-05-15 | 五八有限公司 | 一种数据传输方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107315784B (zh) | 2020-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9275100B2 (en) | Method, apparatus and system of processing correlated keywords | |
EP3301595A1 (en) | Browser extension for contemporaneous in-browser tagging and harvesting of internet content | |
US10542123B2 (en) | System and method for generating and monitoring feedback of a published webpage as implemented on a remote client | |
CN102541931B (zh) | 应用分享方法和应用分享设备 | |
US20150058407A1 (en) | Systems, methods, and apparatuses for implementing the simultaneous display of multiple browser client cursors at each browser client common to a shared browsing session | |
CN103034517B (zh) | 浏览器控制工具加载方法和装置 | |
KR20180079455A (ko) | 다른 형태의 정보 공유를 통한 코브라우징의 통합 | |
US9785710B2 (en) | Automatic crawling of encoded dynamic URLs | |
CN103973682A (zh) | 进行网页访问的方法及装置 | |
CN109657434B (zh) | 应用访问方法及装置 | |
US20150046562A1 (en) | Web browser orchestration | |
US20160205163A1 (en) | System And Method For Curating Digital Content From A Digital Content Platform | |
CN107315784A (zh) | 一种数据访问方法和浏览器 | |
US20220021727A1 (en) | System and method for launching and connecting to a local server from a webpage | |
CN103984727A (zh) | 基于浏览器的网页互动的方法及装置 | |
US20190286696A1 (en) | Management of content tailoring by services | |
CN103618742B (zh) | 网站管理员权限验证方法 | |
CN103986643B (zh) | 基于浏览器的访问网站对应的群组的方法及装置 | |
CN104346460B (zh) | 进行文件下载的方法、装置及浏览器客户端 | |
US12086209B2 (en) | Advanced data collection block identification | |
CN110213355A (zh) | 在局域网内搜索终端的方法及其应用 | |
CN103986644A (zh) | 基于浏览器的网站互动的方法及装置 | |
CN112559278B (zh) | 操作数据的获取方法和装置 | |
US9742760B1 (en) | System and method for improving login and registration efficiency to network-accessed data | |
CN104035970B (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 |