关于门户待办刷新跨域问题的处理方案.docx_第1页
关于门户待办刷新跨域问题的处理方案.docx_第2页
关于门户待办刷新跨域问题的处理方案.docx_第3页
关于门户待办刷新跨域问题的处理方案.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

关于门户待办刷新跨域问题的处理问题描述门户系统提供统一待办处理接口实现了与业务系统的待办信息的统一集成、集中展示。为保证待办任务处理完毕后能够及时的从门户的待办信息展现区域消失,各应用系统需要在待办的处理界面添加刷新门户待办事宜展现区域的JavaScript代码。代码如下所示:function reloadParent()if(typeof(top.opener.Onload)!=undefined!top.opener.closed) top.opener.Onload(); 在各业务系统与统一身份认证系统实现单点登录集成后,每个业务系统的单点登录的域名是各异的,由于系统之间存在跨域问题导致业务系统待办处理完成后,通过JS不能刷新门户的待办展示列表,从而导致门户待办处理后不能自动消失,降低了用户体验。解决方案门户系统通过监控用户本地Cookie的方法,实现门户待办的及时刷新,从而保证门户待办处理完成后自动消失。实现原理如下图所示:1、 用户登录门户本地浏览器生成cookie,cookie状态值默认为空。2、 Cookies监视程序定时对cookie状态值进行监控。3、 用户通过门户打开业务系统的待办处理页面进行待办办理,办理完成后将cookie状态值置为0。(详见示例)4、 Cookies监视程序监控到cookie状态值为0时,对门户待办页面进行刷新。代码示例门户cookies监控程序代码门户cookies监控程序如下:script type=text/javascript/!CDATAvar cookie = ;cookie.set = function(n, v, t) var exp = new Date(); exp.setTime(exp.getTime() + (t|24)*60*60*1000); document.cookie = n + =+ escape(v) + ;expires= + exp.toGMTString()+;path=/;domain=.;cookie.get = function(n) var arr = document.cookie.match(new RegExp(| )+ n +=(;*)(;|$); if(arr != null) return unescape(arr2); return null;/function getTime()if(cookie.get(test)=0)调用门户代办页面刷新方法:cookie.set(test, 1);页面初始化调用function onload()setInterval(getTime(), 4000);/script注:在门户待办刷新时间间隔初始设置为4秒,可根据实际情况或者需求修改任意。业务系统修改cookie状态值代码示例1、Javascript实现方法示例在办理待办的页面加入如下方法。function setCookie(name, value, days) var expire = new Date (); expire.setTime (expire.getTime() + (24 * 60 * 60 * 1000) * days); document.cookie = name + = + escape(value) + ; expires= + expire.toGMTString()+ ; path=/; domain=.; setCookie(test,0, 90)参数说明:cookie名称:testcookie状态值:0cookie有效期:90注:domain=. 因为集团门户上接入N个系统,调用各个子系统后产生的域名发成变化,但二级域名相同,所以这里指定二级域名,实现cookie跨域调用。以上js方法需要在业务系统的待办处理页面进行调用。使用dorado平台的系统:在dorado的办理按钮成功事件onSuccess里调用写入方法: setCookie(test,0, 90); 这里设置cookie的名称状态需要根据门户待办取得cookie的名称状态相同。2、Java程序实现方法示例Cookie cookies=request.getCookies();if(cookies!=nullcookies.length0)for(int i=0;icookies.length;i+)Cookie cookie=cookiesi;System.out.println(cookievalue:+cookie.getValue();if(test.equals(cookie.getName()/如果cookie已存在删除cookie.setMaxAge(0);response.addCookie(cookie);/用java代码创建cookie的方法如下,构造的参数是cookie的name和valueCookie cookie=new Cookie(test,0); cookie.setPath(/); cookie.setMaxAge(180); cookie.setDomain(.); response.addCookie(cookie);注:使用dorado平台的系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论