5月26投产

缘起
网点通整合分行特色项目中,ctp4架构的分行特色应用,由于网点通站点和自己服务器站点域名ip冲突会引发前端跨域问题,即自己最里层窗口以外的父级窗口方法都不可调用。
总行投产时,由于56.57登录模块加载菜单用到了父级top方法,率先报错,从而导致五月版接入失败。这也是首次分行特色中ctp4的架构尝试接入网点通。

排查
为何测试环境没有出现同个报错?在测试环境中是没有登录模块的,用户直接访问到我们组的gctp包的登录组件。此前各组的测试服务器由于session等问题,是无法通过新门户测试服务器访问的。为了配合网点通测试我们将各组的czip包拉过来配置到我们gctp包下,实现了网点通中的接入。
gctp包为何没有出现这个top方法的报错?通过对比和生产的代码,发现一年前测试gctp包投过一段解决国产终端浏览器跨域问题的代码,其中报错的这个ctp.core.js文件就有涉及。注释和代码变化部分都表明了是处理跨域问题的。大概意思是当捕捉到跨域异常,就用当前窗口方法去替换父级方法。由于测试gctp包有这段代码,才没有发生跨域问题。

验证
为了充分验证,战狼在测试环境也搭建了一套登录模块,完全跟生产对齐。然后网点通接入登录模块再跳gctp,复现了报错(网点通配的是nginx服务器,再通过上下文跳登录模块)。然后通过在测试的登录模块替换core.js,确实解决了错误,顺利跳转了gctp包的系统。

投产
测试过core.js确实能解决这个错误,于是上周先投产了登录模块,这时候网点通能显示各个系统菜单树了,但是系统里还是报同个错误。于是又召集各个组投产自己的zctp,octp,pctp包,生产上只需要替换一个core.js,测试上测试需要保证有生产登录模块的java文件和同一个用于session校验的oltp库。测过,投产,然后五月版各个系统可以正常访问了。

意外
系统可以访问,下载浏览查询等没问题。但是里面的弹出窗口,新建标签页类型的功能都无法正常显示。有可能是core.js捕捉到跨域异常后,把所有top方法都替换成了window,但window并没有这个方法。

继续尝试
前文提到一年前gctp覆盖了有几十个文件;这次只是拿出其中一个core.js刚好解决五月版总行投的报错。剩下的几十个好像可以解决新的报错,因为6月版开始有自己的gctp接入了,我们测了现在6月模测gctp的系统,并没有现在5月生产的这些问题。文件太多了还没评估全扔上去对其他应用的影响。如果这个也不行,就只能通过总行加一层代理,统一域名了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值