System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,提供一种基于乾坤微服务的应用请求处理方法、装置、设备及介质。
技术介绍
1、乾坤微服务是一种面向前端的微服务架构方案,将复杂的前端应用拆分为多个独立的子应用,每个子应用可以独立开发、测试、部署和运行,同时又可以组合成一个完整的前端应用。主应用是整个微前端架构的入口和控制中心,负责加载和管理所有子应用。
2、当用户登录过期时,会收到状态码为401的网络请求,此时不同子应用的处理方法可能不统一,有的子应用会跳转至登录页,有的子应用会弹出登录提示框等,用户在不同的子应用中遇到不同的处理方式,导致用户体验感不佳。
技术实现思路
1、本申请提供一种基于乾坤微服务的应用请求处理方法、装置、设备及介质,用于解决如何统一处理401请求的问题。
2、第一方面,提供一种基于乾坤微服务的应用请求处理方法,应用于主应用中,所述主应用管理多个子应用;所述方法包括:
3、拦截服务器发送的第一返回数据请求;所述第一返回数据请求为任一子应用向所述服务器发送的第一网络请求的响应结果;
4、若所述第一返回数据请求中的状态码为401,则弹出登录框;
5、根据用户在所述登录框输入的账号和密码进行登录;所述状态码为401表示所述第一网络请求的令牌过期;
6、若登录成功,则发送携带新令牌的第二网络请求至所述服务器;所述第二网络请求与所述第一网络请求的参数信息相同。
7、在本申请实施例中,通过主应用拦截发往所有子应用的401请
8、可选的,所述参数信息包括请求的方法、统一资源定位符以及请求头。
9、在本申请实施例中,第二网络请求与第一网络请求的方法、统一资源定位符以及请求头均相同,只是令牌不同,可以将服务器对第二网络请求的响应作为第一网络请求的响应返回给子应用。
10、可选的,在拦截服务器发送的第一返回数据请求之前,所述方法还包括:
11、在window实例上拦截静态对象xmlhttprequest中的属性;其中,所述属性用于指示网络请求的参数信息;所述网络请求包括所述第一网络请求;
12、保存所述网络请求的参数信息。
13、在本申请实施例中,由于每个子应用均是采取axios进行的网络请求,而axios的底层实现逻辑是基于xmlhttprequest进行的网络封装,因此,在主应用的window实例上对xmlhttprequest的属性进行拦截,可以实现对每一个子应用的网络拦截。
14、可选的,所述属性包括open方法、send方法和setrequestheader方法;所述open方法用于初始化所述网络请求;所述send方法用于发送所述网络请求;所述setrequestheader方法用于设置所述网络请求的请求头。
15、在本申请实施例中,对open方法、send方法和setrequestheader方法进行拦截,可以获取到网络请求的各种参数信息,便于后续重新创建网络请求时使用。
16、可选的,所述拦截服务器发送的第一返回数据请求,包括:
17、在window实例上拦截静态对象xmlhttprequest中的onloadend方法或onreadystatechange方法;
18、所述若所述第一返回数据请求中的状态码为401,则弹出登录框,包括:
19、若所述onloadend方法或所述onreadystatechange方法中的状态码为401,则弹出登录框。
20、在本申请实施例中,考虑不同版本的axios在完成请求时使用不同的回调方法,因此对onloadend方法和onreadystatechange方法均进行拦截,可以提高代码的兼容性,以适用不同版本的axios。
21、可选的,在拦截服务器发送的第一返回数据请求之后,所述方法还包括:
22、若所述第一返回数据请求中的状态码不是401,将所述第一返回数据请求发送给所述任一子应用。
23、在本申请实施例中,如果状态码不是401,说明令牌有效,不需要重新请求认证或授权,直接返回响应给对应的子应用,可以减少重复请求认证服务器的次数,从而提高响应速度,减少用户等待时间。
24、可选的,所述若登录成功,则发送携带新令牌的第二网络请求至所述服务器,包括:
25、若登录成功,则获取新令牌;
26、根据所述新令牌和所述第一网络请求的参数信息,创建第二网络请求;
27、发送所述第二网络请求至所述服务器。
28、在本申请实施例中,根据新令牌和第一网络请求的参数信息,创建第二网络请求,这样使得第二网络请求和第一网络请求的参数信息相同且令牌不同,第二网络请求的响应可以作为第一网络请求的响应返给对应的子应用,可以简化服务器端和子应用的逻辑实现,子应用无需关心具体是哪个令牌发起的请求,只需处理返回的响应即可。
29、可选的,所述若所述第一返回数据请求中的状态码为401,则弹出登录框,包括:
30、若所述第一返回数据请求中的状态码为401,则弹出登录框,并将所述第一返回数据请求放入数组中;
31、拦截所述服务器发送的第二返回数据请求,若所述第二返回数据请求中的状态码为401,则将所述第二返回数据请求放入所述数组中;
32、所述若登录成功,则发送携带新令牌的第二网络请求至所述服务器,包括:
33、若登录成功,则发送携带新令牌的第二网络请求、携带新令牌的第四网络请求至所述服务器;所述第四网络请求与所述第三网络请求的参数信息相同。
34、在本申请实施例中,将多个401请求保存到数组中,等待登录成功后再根据数组中的每个401请求,重新创建并发送对应的网络请求,这样用户只用重新登录一次,可以减少用户重复登录的次数,提高用户的操作效率。
35、可选的,在若登录成功,则发送携带新令牌的第二网络请求至所述服务器之后,所述方法还包括:
36、将所述第二网络请求的状态同步至所述第一网络请求;
37、将所述第四网络请求的状态同步至所述第三网络请求。
38、在本申请实施例中,第一网络请求和第三网络请求的状态一直为等待状态,这样虽然重新发送了网络请求,但在网页上对于用户而言,感知上只有一次请求,可以降低用户对系统性能和响应速度的负面认知。
...
【技术保护点】
1.一种基于乾坤微服务的应用请求处理方法,其特征在于,应用于主应用中,所述主应用管理多个子应用;所述方法包括:
2.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,所述参数信息包括请求的方法、统一资源定位符以及请求头。
3.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,在拦截服务器发送的第一返回数据请求之前,所述方法还包括:
4.如权利要求3所述的基于乾坤微服务的应用请求处理方法,其特征在于,所述属性包括open方法、send方法和setRequestHeader方法;所述open方法用于初始化网络请求;所述send方法用于发送网络请求;所述setRequestHeader方法用于设置网络请求的请求头。
5.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,所述拦截服务器发送的第一返回数据请求,包括:
6.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,在拦截服务器发送的第一返回数据请求之后,所述方法还包括:
7.如权利要求1所述的基于乾坤微服务
8.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,若所述第一返回数据请求中的状态码为401,则弹出登录框,包括:
9.如权利要求8所述的基于乾坤微服务的应用请求处理方法,其特征在于,在若登录成功,则发送携带新令牌的第二网络请求至所述服务器之后,所述方法还包括:
10.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,在若登录成功,则发送携带新令牌的第二网络请求至所述服务器之后,所述方法还包括:
11.一种基于乾坤微服务的应用请求处理装置,其特征在于,设置于主应用中,所述主应用管理多个子应用;所述装置包括:
12.一种计算机设备,其特征在于,该计算机设备包括存储器和处理器,所述存储器中存储有计算机程序,所述处理器执行所述计算机程序,实现如权利要求1-10中任一项所述的基于乾坤微服务的应用请求处理方法。
13.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,处理器执行所述计算机程序,实现如权利要求1-10中任一项所述的基于乾坤微服务的应用请求处理方法。
...【技术特征摘要】
1.一种基于乾坤微服务的应用请求处理方法,其特征在于,应用于主应用中,所述主应用管理多个子应用;所述方法包括:
2.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,所述参数信息包括请求的方法、统一资源定位符以及请求头。
3.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,在拦截服务器发送的第一返回数据请求之前,所述方法还包括:
4.如权利要求3所述的基于乾坤微服务的应用请求处理方法,其特征在于,所述属性包括open方法、send方法和setrequestheader方法;所述open方法用于初始化网络请求;所述send方法用于发送网络请求;所述setrequestheader方法用于设置网络请求的请求头。
5.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,所述拦截服务器发送的第一返回数据请求,包括:
6.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,在拦截服务器发送的第一返回数据请求之后,所述方法还包括:
7.如权利要求1所述的基于乾坤微服务的应用请求处理方法,其特征在于,所述若登录成功,则...
【专利技术属性】
技术研发人员:请求不公布姓名,请求不公布姓名,
申请(专利权)人:成都数之联科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。