APP下载

Ajax跨域通信解决异步加载及信息同步实操

2017-03-15李国强

科技创新导报 2016年30期

摘 要:文献资源平台通常汇聚各类文献资源和服务,在解决统一登录时,多项服务需自动登录,且需确保信息同步。该文以石家庄市文献服务平台解决统一登录为例,提出通过循环验证Ajax登录方式,实现异步加载信息同步,并给出实操。

关键词:JavaScript Ajax跨域通信 统一登录 异步加载 信息同步

中图分类号:TP311 文献标识码:A 文章编号:1674-098X(2016)10(c)-0082-02

我国社会经济的发展正在经历着重大转型,科技创新的主导作用日益显著。服务于区域经济建设、科技创新的科技文献信息资源平台在国内各省市相继建立并开展服务。科技文献平台通常需要整合来自不同资源服务商提供的第三方数据平台和第三方知识服务系统,采用统一登录的方式,提升用户体验。

1 统一登录中遇到的问题

1.1 统一登录定义

在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统[1]。

1.2 统一登录的一般流程

文献平台解决统一登录的一般方法:用户进入任一应用系统后,应用系统会自动调用ULS的验证接口进行服务器验证,来确认当前用户是否为已登录用户,如果是未登录用户或者出现其他错误,则会自动跳转到ULS系統。此时,在ULS上的已注册的用户可以在ULS上进行登录,登录成功后即可返回应用系统。而未注册用户则需要先在ULS上进行注册,并且初始化账号,继而重复上述步骤直到登录成功[2]。

1.3 石家庄市科技文献平台的具体情况

石家庄文献平台整合了维普中文期刊、智立方、尚维全球产品样本库、超星电子书等多个第三方平台及服务。其中维普中文期刊、超星电子书等第三方平台的统一登录通过常规的统一登录流程得到了解决。同时,文献平台为了强化应用效果,需要将第三方平台智立方中的搜索引擎及全球产品样本库中的行业资讯信息整合进平台首页,然而由于以上两项服务不提供匿名服务接口,需要用户进行一次点击操作才能获取目标平台的登录cookie,在用户首次打开文献平台首页时,第三方平台处于未登录状态,这些展示的内容并没有访问权限,无法实现自动登录。

2 Ajax跨域通信设计

针对以上问题,文章设计出动态异步加载(Ajax)方式,当用户打开资源平台首页时,利用脚本在浏览器后台模拟一次用户点击,用以获取目标平台的登录cookie。

2.1 Ajax同源策略

同源策略,即一个脚本只能读取与它同源的窗口或文档的属性,这里的“源”是指域名、端口或协议。该机制将来自不同域(假设域代表始发者)的Web应用程序分离开来,也就是说,如果多个窗口或框架中的一些应用程序是从不同的服务器下载的,那么它们无法互相访问数据和脚本,浏览器的脚本只被允许访问来自同一站点的资源[3]。

2.2 绕过同源策略

同源策略只是浏览器针对JavaScript脚本进行的安全策略,在不能操作用户浏览器的情况下,无法绕过同源策略。

在HTML中,

公司地址: 北京市西城区德外大街83号德胜国际中心B-11

客服热线:400-656-5456  客服专线:010-56265043  电子邮箱:longyuankf@126.com

电信与信息服务业务经营许可证:京icp证060024号

Dragonsource.com Inc. All Rights Reserved

icp