关于门户待办刷新跨域问题的处理方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
关于门户待办刷新跨域问题的处理
问题描述
门户系统提供统一待办处理接口实现了与业务系统的待办信息的统一集成、集中展示。为保证待办任务处理完毕后能够及时的从门户的待办信息展现区域消失,各应用系统需要在待办的处理界面添加刷新门户待办事宜展现区域的JavaScript代码。代码如下所示:
在各业务系统与统一身份认证系统实现单点登录集成后,每个业务系统的单点登录的域名是各异的,由于系统之间存在跨域问题导致业务系统待办处理完成后,通过JS不能刷新门户的待办展示列表,从而导致门户待办处理后不能自动消失,降低了用户体验。
解决方案
门户系统通过监控用户本地Cookie的方法,实现门户待办的及时刷新,从而保证门户待办处理完成后自动消失。
实现原理如下图所示:
1、用户登录门户本地浏览器生成cookie,cookie状态值默认为空。
2、Cookies监视程序定时对cookie状态值进行监控。
3、用户通过门户打开业务系统的待办处理页面进行待办办理,办
理完成后将cookie状态值置为0。(详见示例)
4、Cookies监视程序监控到cookie状态值为0时,对门户待办页面
进行刷新。
代码示例
门户cookies监控程序代码
注:在门户待办刷新时间间隔初始设置为4秒,可根据实际情况或者需求修改任意。
业务系统修改cookie状态值代码示例
1、Javascript实现方法示例
在办理待办的页面加入如下方法。
参数说明:
cookie名称:test
cookie状态值:0
cookie有效期:90
注:domain=因为集团门户上接入N个系统,调用各个子系统后产生的域名发成变化,但二级域名相同,所以这里指定二级域名,实现cookie跨域调用。以上js方法需要在业务系统的待办处理页面进行调用。
使用dorado平台的系统:在dorado的办理按钮成功事件onSuccess里调用写入方法:setCookie("test","0", 90);这里设置cookie的名称状态需要根据门户待办取得cookie的名称状态相同。
2、Java程序实现方法示例
注:使用dorado平台的系统推荐使用后台方法,写在流程提交后调用完成待办之前的方法中即可,代码只写一次。通常写在完成待办的同时调用一下。
3、.Net程序实现方法示例
注:需要.Net架构系统的技术人员自行编写cookies操作代码,可参考java程序的实现方式。