CN101615179A - 用于Web应用的跨域交互的方法和系统 - Google Patents

用于Web应用的跨域交互的方法和系统 Download PDF

Info

Publication number
CN101615179A
CN101615179A CN200810124981A CN200810124981A CN101615179A CN 101615179 A CN101615179 A CN 101615179A CN 200810124981 A CN200810124981 A CN 200810124981A CN 200810124981 A CN200810124981 A CN 200810124981A CN 101615179 A CN101615179 A CN 101615179A
Authority
CN
China
Prior art keywords
territory
list
iframe
service
belongs
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200810124981A
Other languages
English (en)
Other versions
CN101615179B (zh
Inventor
毛新生
张柯
易立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Workday Inc
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to CN2008101249815A priority Critical patent/CN101615179B/zh
Priority to US12/490,577 priority patent/US8719421B2/en
Publication of CN101615179A publication Critical patent/CN101615179A/zh
Application granted granted Critical
Publication of CN101615179B publication Critical patent/CN101615179B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

提供了一种用于Web应用的跨域交互的方法和系统,其中属于第一域的Web应用需要与属于第二域的服务进行交互。所述方法包括由所述Web应用:在网页中创建一个iFrame,其中所述iFrame属于所述第一域;在所述iFrame中创建表单;将所述表单提交给提供所述属于第二域的服务的Web服务器并从所述Web服务器接收响应;以及通过接收所述Web服务器的响应而刷新所述iFrame,将所述iFrame所属的域改变为所述第二域,并通过所述表单中包含的信息来与所述属于第二域的服务进行跨域交互。

Description

用于Web应用的跨域交互的方法和系统
技术领域
本发明一般地涉及Web应用,并且具体而言涉及一种用于Web应用的跨域交互的方法和系统。
背景技术
Web应用是一种基于Web的应用,指的是用户界面驻留在Web浏览器中的任何应用程序,它是一些Web网页和用来完成某些任务的其它资源的集合。Web应用是典型的客户机/服务器体系结构的产物,其能够通过网络使得客户机和服务器进行通信。常见的留言版、聊天室和论坛(BBS)等,都是Web应用。不过这些应用相对比较简单,而Web应用的真正核心主要是对数据进行处理。
参见图1A,示出了传统的Web应用的模型。在典型的Web应用中,客户机100的浏览器中的用户界面(UI)中的用户动作可以触发一个请求,并将此请求发送到Web服务器150。服务器150在接收到该请求后进行某种处理,诸如检索数据、处理数据、与各种传统系统交互等等。然后服务器150向客户机100返回页面作为响应。客户机100在接收到响应后,可以继续执行下一个用户动作,从而重复与服务器150的交互过程。此过程被称为是同步的,也就是说,服务器150强制用户进入提交-等待-重新显示的过程,使得用户的动作总是与服务器150的处理时间同步。从时间轴上看,上述交互过程是顺序的,且始终与时间轴同步。在图1A中,向服务器150发送请求和服务器150返回响应的过程被统称为数据传输。
参见图1B,示出了使用AJAX的富Web应用(Rich Web Application)的模型。客户机100上运行的富Web应用通过使用AJAX技术与服务器150进行异步通信,从而无需重新刷新整个页面。术语AJAX是“Asynchronous(异步)JavaScript+XML”的简写,其由几种新的技术以新的方式组合而成。AJAX包含:
·基于XHTML和CSS标准的表示;
·使用Document Object Model进行动态显示和交互;
·使用XmlHttpRequest与服务器进行异步通信;
·使用JavaScript绑定一切。
使用AJAX可以构建动态的和响应灵敏的Web应用,从而使浏览器可以为用户提供更为自然的浏览体验。AJAX提供与服务器150异步通信的能力,从而使用户从传统的请求/响应的循环中解脱出来。借助于AJAX,客户机100可以在浏览器的用户界面(UI)110中发生用户动作(例如提交请求、输入)时,通过AJAX引擎120进行客户机端的处理,并在客户机端的处理结束后立即更新并显示浏览器的UI。同时AJAX引擎120还向服务器150发出异步请求,以便执行服务器端的处理。当与该请求相应的响应从服务器150返回时,客户机100就可以通过AJAX引擎120来相应地更新UI 110,而不用刷新整个页面。最重要的是,用户甚至不知道客户机100上的浏览器正在与服务器150通信,使得Web站点看起来是即时响应的。因而,Web应用不必完全依赖于从服务器重新载入页面来向用户呈现更改。在图1B中,向服务器150发送请求和服务器返回响应的过程被统称为数据传输。
传统上,由于客户机的浏览器要刷新整个页面,需要传送大量的数据,因为必须重新发送整个页面。而如果使用AJAX,服务器可以返回一个包含了某些特定信息的较短的消息,而不是整个页面,并且只需要刷新浏览器页面上相关的一部分,而不是刷新整个屏幕。
AJAX的核心是JavaScript对象XmlHttpRequest。它是一种支持异步请求的技术。简而言之,XmlHttpRequest对象允许客户机端的JavaScript向服务器提出HTTP请求(可以通过GET或POST方法,但不限于这两种方法,例如,Head/PUT/DELETE等)并处理响应,而不用在浏览器中重新刷新页面,并且不会阻塞用户。对XmlHttpRequest对象的详细定义与描述请参见W3C(万维网联盟)的规范(http://www.w3.org/TR/XMLHttpRequest)。XmlHttpRequest对象还可以被进一步用于请求或发送任意类型的数据,而不仅仅限于XML数据。
出于安全性的考虑,基于AJAX的富Web应用只能访问应用所在的当前域中的资源,而不能实现跨域访问。例如,站点domain1.com中的AJAX只能访问本站点内的资源,而不能跨域访问站点domain2.com中的资源。然而,属于某一域的Web应用有时需要对属于另一域的服务器进行AJAX请求,以便调用该服务器中的服务或资源。例如,Web应用想要使用外部的REST(表述性状态转移)服务,诸如“Google推荐”、“Yahoo拼写检查”等;Web应用想要使用内联网上可用的某种远程企业REST服务;Web应用想要包括来自外部服务器(诸如CNN)的新闻订阅源(FEED);以及Web应用想要创建Mashup(一种新颖的API集成的应用)。
上述的跨域访问受到现有的XmlHttpRequest实现的限制。在默认情况下,请求只被允许提交给应用所在的当前域中的服务器。这样可以防止来自一个站点的恶意AJAX代码将用户浏览器作为基础而攻击另一站点,也可以防止一个站点上的关键信息(诸如用户名、口令等)的泄露。并且,这样符合作为JavaScript安全模型的一部分的同源策略。
富Web应用常常要与来自其它域的服务进行交互,特别是在SOA或Mashup的环境中,富Web应用常常需要与多个来自其他域的服务进行交互,跨域的服务交互能力变得更加重要。但是根据上述的限制,不允许富Web应用与该应用所在的域之外的其它域所提供的服务进行交互。
因此,为了使得Web应用、尤其是富Web应用能够动态地实现跨域交互,访问来自其它域的服务器的数据和服务,同时兼顾数据传输的灵活性,对于本领域技术人员来说,存在对于一种用于Web应用的跨域交互的方法和系统的需要。
发明内容
为了满足Web应用的跨域交互的需要,而提出了本发明。在本发明中,通过由Web应用创建iFrame,并由iFrame通过表单使用GET或POST(但不限于这两种方法,例如,Head/PUT/DELETE等)将服务调用上下文和/或数据访问上下文发送到另一不同域。来自所述另一域的响应可以使得iFrame切换到该另一域,并且可以调用该域的服务或访问该域的数据。接着iFrame通过表单使用GET或POST将服务调用结果和/或数据访问结果发送到初始域。来自所述初始域的响应可以使得iFrame切换回到该初始域,从而能够处理所述结果。
在本发明的第一方面中,提出了一种用于Web应用的跨域交互的方法,其中属于第一域的Web应用需要与属于第二域的服务进行交互,所述方法包括由所述Web应用:
在网页中创建一个iFrame,其中所述iFrame属于所述第一域;
在所述iFrame中创建表单;
将所述表单提交给提供所述属于第二域的服务的Web服务器并从所述Web服务器接收响应;以及
通过接收所述Web服务器的响应而刷新所述iFrame,将所述iFrame所属的域改变为所述第二域,并通过所述表单中包含的信息来与所述属于第二域的服务进行跨域交互。
所述方法可以根据所述表单中的数据量的大小,确定通过GET方法还是POST方法来提交所述表单,其中当所述表单中的数据量较小时,使用GET方法,当所述表单中的数据量较大时,使用POST方法。
在本发明的第二方面中,提出了一种用于Web应用的跨域交互的系统,其中属于第一域的Web应用需要与属于第二域的服务进行交互,所述系统包括:
用于在网页中创建一个iFrame的装置,其中所述iFrame属于所述第一域;
用于在所述iFrame中创建表单的装置;
用于将所述表单提交给提供所述属于第二域的服务的Web服务器并从所述Web服务器接收响应的装置;以及
用于通过接收所述Web服务器的响应而刷新所述iFrame,将所述iFrame所属的域改变为所述第二域,并通过所述表单中包含的信息来与所述属于第二域的服务进行跨域交互的装置。
所述系统进一步包括:用于根据所述表单中的数据量的大小,确定通过GET方法还是POST方法来提交所述表单的装置,其中当所述表单中的数据量较小时,使用GET方法,当所述表单中的数据量较大时,使用POST方法。
附图说明
在附带的权利要求中阐明了被认为是本发明新颖特性的特征。然而,通过参考以下结合附图的说明性实施例的详细描述,将最好地理解本发明本身以及其优选使用模式、另外的目的和优点,在附图中:
图1A示出了传统的Web应用的模型;
图1B示出了使用AJAX的富Web应用的模型;
图2示出了根据本发明一个实施例的用于Web应用的跨域交互的系统及其工作流程的示例性示意图;
图3示出了根据本发明一个实施例的用于Web应用的跨域交互的系统及其工作流程的示例性示意图,其是对于图2的继续说明;
图4示出了根据本发明一个实施例的用于Web应用的跨域交互的系统及其工作流程的示例性示意图,其是对于图3的继续说明;
图5示出了根据本发明一个实施例的用于Web应用的跨域交互的系统及其工作流程的示例性示意图,其是对于图4的继续说明;
图6是用于实现根据本发明一个实施例的电子商务网站的典型的结账过程的示例性环境;
图7示出了在浏览器上显示的页面中创建的表单的示例;
图8是根据本发明的一个实施例的用于Web应用的跨域交互的方法的示例性流程图;以及
图9是示出了一种根据本发明一个实施例的用于Web应用的跨域交互的系统的示意性框图。
需要注意,在全体附图中,相同或相似的标号指代的是相同或相似的单元或组件。
具体实施方式
在下文中将结合附图对本发明的示范性实施例进行描述。为了清楚和简明起见,在说明书中并未描述实际实现方式的所有特征。然而,应该了解,在开发任何这种实际实施例的过程中必须做出很多实现方式所特定的决定,以便实现开发人员的具体目标,例如符合与系统及业务相关的那些限制条件,其中,这些限制条件会随着实施方式的不同而改变。此外,还应该了解,虽然开发工作有可能是非常复杂和费时的,但对得益于这个公开内容的本领域技术人员来说,这种开发工作仅仅是例行的任务。
此外,还需要说明的一点是,为了避免因不必要的细节而混淆了本发明,在附图中仅仅示出了与根据本发明的方案密切相关的装置结构和/或处理步骤,而省略了与本发明关系不大的其它细节。
以下是对本发明及其实施例的详细介绍。首先参见图2,图2示出了根据本发明一个实施例的用于Web应用的跨域交互的系统及其工作流程的示例性示意图。如图2所示,所述系统包括服务器200以及服务器250,其中服务器200提供属于域A的服务和/或数据,而服务器250提供属于域B中的服务和/或数据。服务器200具有作为中介的代理A 205,用于将相关的应用服务请求或响应传递给服务器200。服务器250具有作为中介的代理B 260,用于将相关的应用服务请求或响应传递给服务器250。注意,代理A 205和代理B 260适用于更加通用的针对客户机/服务器的体系结构。在本发明的可替换实施例中,上述代理也可以被忽略,而由服务器200和服务器250直接处理来自外部的数据或请求。在本发明的此实施例中,服务器200和服务器250既可以是物理上独立的两个实体,也可以是逻辑上独立的两个Web服务器,二者分别提供属于不同域的服务/数据。
当用户想要访问域A时,属于域A的富Web应用210将被调用并运行于客户机的浏览器上。该富Web应用210与服务器200可以相互通信,因为它们属于相同的域。在本发明的一个实施例中,在某种情形中,富Web应用210想要跨域调用服务器250上的属于域B的服务255。在步骤1,富Web应用210首先创建一个iFrame对象,例如图2中所示的iFrame220。此时,该iFrame 220所在的域是域A。
iFrame对象也可以被称作嵌入式元素或者嵌入式框架,它可以把一个网页的框架和内容嵌入在现有的HTML网页中,作为现有HTML网页的一个子窗口。iFrame可以嵌入到HTML网页中的任意部分。它的一大特征是,iFrame所引用的HTML文件不是与另外的HTML文件相互独立显示,而是可以直接嵌入在一个HTML文件中。但是这两个HTML文件是相互独立的,二者都被看成是完整的文件,而不是将其中一个看成另一个的一部分。另外,iFrame还可以多次在不同页面内显示同一内容,而不必重写该内容。通过iFrame对象所在页面的对象模型,可以访问iFrame对象的属性,但不能访问其内容,从而确保了安全性。根据本发明的实施例,所创建的iFrame被用于使能Web网页的跨域交互。iFrame的大小是可以调整的,在本发明的实施例中,iFrame可以是不可见的,以至于用户甚至不会在UI中看到它。
返回图2,在步骤2,富Web应用210在iFrame 220中创建请求表单230。富Web应用210将通过用于交互的请求数据来填充所创建的请求表单230。请求表单230的输入(Input)可以包括:用于处理来自服务255的结果的功能名称;代理A 205的URL;服务255的URL;用于调用服务255的HTTP动词(verb);以及用于调用服务255的数据。请求表单230的方法(Method)可以包括GET或POST。请求表单230的动作(Action)可以包括:代理B 260的URL。注意,在本上下文中,所述的请求表单以及将在下文中描述的结果表单中包含的内容仅是作为示例。本领域技术人员可以理解,根据不同的具体实现方式以及用户需求,表单中的内容可以改变,而不会脱离本发明的范围。例如,请求表单中可以包含与服务调用或者数据访问有关的上下文,而结果表单中可以包含与服务调用或者数据访问有关的结果。
在此,将表单用作为数据的容器,被提交的请求或者服务的结果都可以被填入表单并通过表单进行传输。使用表单的原因在于,通过表单可以传输不同大小的数据。由于表单中可以包括方法GET或POST,此二者代表表单的不同提交方式,从而既可以传输少量数据也可以传输大体积的数据。GET和POST的若干区别如下所述。GET是把参数数据队列加到提交表单的Action属性所指向的URL中,值和表单内各个字段一一对应,并且在URL中可以看到。POST是通过HTTP POST机制,将表单内各个字段与其内容放置在HTML头部内一起传送到Action属性所指向的URL地址,而用户看不到这个过程。GET方法将数据编码到URL里,所以传送的数据量的大小受到URL长度的限制,适合传送较小的数据,而POST方法传送的数据量不受限制。
如果要在浏览器中发送表单或数据给服务器端,使用GET方法方便直观,缺点是访问该网站的用户也可以修改URL串后发送给服务器,如果处理得不够好很容易出错。而且GET方法可能会产生很长的URL,或许会超过某些浏览器与服务器对URL长度的限制。GET传递的字符串长度不能超过250个字符,如果超过这一长度,浏览器可能会将URL自动截断,导致数据缺失。另外,GET方法不支持ASCII字符之外的任何字符,如果包含有汉字或其他非ASCII字符时,需要使用额外的编码操作。
使用POST方法发送数据时,对于用户来说是不透明的。按照HTTP协议,数据附加于HTTP的头部信息中,用户不能随意修改。这对于Web应用而言,安全性要好得多,而且使用POST可以发送大体积的数据给Web服务器。因此,在本发明的实施例中,可以根据实际传输的数据的大小,由Web应用智能地选择GET或POST方法来提交表单数据。
返回图2,当在iFrame 220中成功创建并填充请求表单230之后,在步骤3,iFrame 220将请求表单230提交到服务器250中的代理B 260。
继续参考图3,图3示出了根据本发明一个实施例的用于Web应用的跨域交互的系统及其工作流程的示例性示意图,其是对于图2的继续说明。如图3所示,所述系统包括属于域A的服务器200以及属于域B的服务器250,其中服务器200和服务器250中包括的组件与图2相同。属于域A的富Web应用210运行于客户机的浏览器上。在步骤4,在服务器250的代理B 260接收到请求表单230之后,代理B 260将使用请求表单230中包含的用于交互的请求数据,理解其中的上下文,生成将返回iFrame 220的、针对请求表单230的响应,并通过所述响应来刷新iFrame 220。此时,iFrame 220通过代理B 260的响应被刷新,并且iFrame 220所属的域从初始的域A改变成为域B。在步骤5,基于所述用于交互的请求数据,通过iFrame 220对服务255进行AJAX调用。由于此时iFrame 220与服务255属于相同的域B,因此该调用可以被实施。注意,在本发明的可替换实施例中,iFrame 220可以访问域B中的数据,而不是调用域B中的服务。二者的实现方式基本相同,在此不进行重复的描述。
继续参考图4,图4示出了根据本发明一个实施例的用于Web应用的跨域交互的系统及其工作流程的示例性示意图,其是对于图3的继续说明。如图4所示,所述系统包括属于域A的服务器200以及属于域B的服务器250,其中服务器200和服务器250中包括的组件与图2相同。属于域A的富Web应用210运行于客户机的浏览器上。在步骤6,基于对服务255的调用所产生的结果,由代理B 260在iFrame 220中创建结果表单240。代理B 260将通过用于交互的结果数据来填充所创建的结果表单240。结果表单240的输入(Input)可以包括:用于处理来自服务255的结果的功能名称以及服务255的响应。结果表单240的方法(Method)可以包括GET或POST。结果表单240的动作(Action)可以包括:代理A 205的URL。当在iFrame 220中成功创建并填充结果表单240之后,在步骤7,iFrame 220将结果表单240提交到服务器200中的代理A 205。
继续参考图5,图5示出了根据本发明一个实施例的用于Web应用的跨域交互的系统及其工作流程的示例性示意图,其是对于图4的继续说明。如图5所示,所述系统包括属于域A的服务器200以及属于域B的服务器250,其中服务器200和服务器250中包括的组件与图2相同。属于域A的富Web应用210运行于客户机的浏览器上。在步骤8,在服务器200的代理A 205接收到结果表单240之后,代理A 205将使用结果表单240中包含的用于交互的结果数据,理解其中的上下文,生成将返回iFrame 220的、针对结果表单240的响应,并通过所述响应来刷新iFrame 220。此时,iFrame 220通过代理A 205的响应被刷新,并且iFrame 220所属的域从域B改变回初始的域A。在步骤9,通过iFrame 220中的页面,通过结果表单240中包含的服务255的响应来调用用于处理来自服务255的结果的功能名称,其中所述功能用于保存或处理返回的结果。iFrame 220可以将结果表单240中的数据传递给富Web应用210。由于此时iFrame 220与代理A 205和富Web应用210属于相同的域A,因此该调用和数据传递可以被实施。
以上是对于根据本发明一个实施例的用于Web应用的跨域交互的系统及其工作流程的详细描述,下面将参照示例进行进一步说明,以便本领域技术人员可以充分认识到本发明的目的、优势以及实现方式。在以下示例中,针对电子商务网站的典型的结账过程来描述本发明的一个实施例。
首先参见图6,图6是用于实现根据本发明一个实施例的电子商务网站的典型的结账过程的示例性环境。如图6所示,在客户机的浏览器610上正在显示购物网站http://sample_shop.com的页面,该页面提供一组服务,例如库存查询、价格查询、物品图片展示、购物车等等。当用户完成购物行为并打算结账时,用户选择使用“结账服务”625,该服务在属于相同域的Web服务器620上运行,其需要以下参数:支付金额、收款人的银行帐户、以及支付序列号。显而易见,所述结账服务625必须通过用户选择的某个银行站点来完成支付。假定在Web服务器630上运行的银行网站http://sample_bank.com可以向用户提供“转账服务”635,该服务需要接收以下参数:支付金额、收款人的银行帐户、付款人的银行帐户、以及支付序列号,并在接收到所述参数之后将特定数量的钱(等于支付金额)从付款人的银行帐户转账到收款人的银行帐户。支付序列号被记录下来用于付款人和收款人进行检查。浏览器610运行由http://sample_shop.com所托管的“购物应用”615,该应用想要使用来自http://sample_shop.com的“结账服务”625以及来自http://sample_bank.com的“转账服务”635,以便实现端对端的结账过程。
由上述示例可见,“购物应用”615需要与来自两个不同的域的服务进行交互。由于“购物应用”615自身属于http://sample_shop.com,因此该应用可以使用XmlHttpRequest对象来调用“结账服务”625。但是由于“转账服务”635由另一不同的域http://sample_bank.com所托管,因此XmlHttpRequest对象被阻止调用“转账服务”635。
根据本发明的一个实施例,可以通过在页面内创建的iFrame并基于表单提交来完成Web应用的跨域交互。首先参见图7,图7示出了在浏览器上显示的页面中创建的表单的示例。在属于域http://sample_shop.com的浏览器610上页面中创建一张表单,该表单包括:收款人的银行帐户611、支付金额612、支付序列号613、以及付款人的银行帐户614。其中收款人的银行帐户611、支付金额612、支付序列号613中的值可以由来自域http://sample_shop.com中的“结账服务”625自动填充,而付款人的银行帐户614可以由用户在页面上直接输入他/她的帐户号码来进行填充。当确认上述值均正确之后,用户可以点击“支付”按钮616,于是“购物应用”615开始调用域http://sample_bank.com中的“转账服务”635。
以下结合图8来描述对于在域http://sample_bank.com中调用“转账服务”635的详细步骤以及实现所述步骤的示例性代码。图8是根据本发明的一个实施例的用于Web应用的跨域交互的方法的示例性流程图。
首先参见用于处理对于“支付”按钮616的点击的如下代码:
<html>
<script src=”http://sample_shop.com/crossdomain.js”></script>
<script>
function pay(){
       var xhr=new CrossDomainXMLHttpRequest(“http://sample_bank.com/proxy”);
    request.open(″POST″,“http://sample_bank.com/transter_service”,true);
    request.onreadystatechange=function(){
         if(xhr.readyState==4){
            if(xhr.status==200){
                 var response=request.response Text;
                     ....
            }else if(request.status==404){
                     ...
            }
        }
    request.send(document.getElementById(“payeeAccount”)
    +“;”+document.getElementById(“payerAccount”)
    +“;”+document.getElementById(“amount”)
    +“;”+document.getElementById(“serialNumber”));//请求数据是:111111111111111111;
2222222222222;$100.00;200805280001
    }
    </script>
    <input id=”payeeAccount”></input>
    <input id=”amount”></input>
    <input id=”serialNumber”></input>
    <input id=”payerAccount”></input>
    <button id=”pay”onclick=”pay();”>Pay</button>
    </html>
在运行时期间,当方法“request.send”被调用时,CrossDomainXMLHttpRequest对象将创建一个不可见的iFrame(图8的步骤810:创建iFrame),该iFrame的当前域是“http://sample_shop.com”。创建iFrame的代码如下所示:
<iframe>
</iframe>
接着,对象CrossDomainXMLHttpRequest在iFrame中创建请求表单,并将请求数据和其它相关信息编码到该表单中(图8的步骤820:创建请求表单)。创建请求表单的代码如下所示:
<iframe>
<form    action=”http://sample_bank.com/proxy”   method=”POST”>    <!--ormethod=”GET”-->
<input name=”serviceToCall”>http://sample_bank.com/transfer_service</input>
<input name=”httpMethodOfServiceToCall”>POST</input>
<input name=”callbackProxy”>http://sample_shop.com/proxy</input>
<input    name=”requestData”>111111111111111111;       2222222222222;     $100.00;200805280001</input>
</form>
</iframe>
在所述请求表单被成功创建之后,CrossDomainXMLHttpRequest对象提交上述请求表单(图8的步骤830:提交请求表单)。由于表单中具有属性action=”http://sample_bank.com/proxy”,因此该表单被提交到属于域http://sample_bank.com的代理。代理将使用请求表单中包含的数据,生成响应,并通过所述响应刷新该iFrame(图8的步骤840:生成响应并刷新iFrame)。此时iFrame通过代理的响应被刷新,并且iFrame中显示的页面被转换成为域http://sample_bank.com。接着通过iFrame对于当前所属的域http://sample_bank.com的“转账服务”进行调用(图8的步骤850:调用服务/访问数据)。在本发明的可替换实施例中,iFrame可以访问域http://sample_bank.com中的数据而不调用服务,或者既调用服务又访问数据。
当成功地调用了“转账服务”之后,可以基于对于“转账服务”的调用结果,在相同的iFrame中创建一个新的结果表单(图8的步骤860:创建结果表单)。相应的代码如下所示:
<iframe>
<script>
var xhr=new XMLHttpRequest();
request.open(″POST″,“http://sample_bank/transfer_service”,true);
request.onreadystatechange=function(){
if(xhr.readyState==4){
    if(xhr.status==200){
        var response=request.responseText;
        //在iFrame中创建结果表单
    }else if(request.status==404){
         ...
    }
}
request.send(“111111111111111111;2222222222222;$100.00;200805280001”);
}
</script>
<form target=”http://sample_shop.com/proxy”>
<input name=”result”>you money transferred successfully</input>
</form>
</iframe>
在所述结果表单被成功创建之后,提交上述结果表单(图8的步骤870:提交结果表单)。由于结果表单中具有属性target=”http://sample_shop.com/proxy”,因此该表单被提交到属于域http://sample_shop.com的代理。代理将使用结果表单中包含的数据,生成针对结果表单的响应,并通过所述响应来刷新iFrame。此时,iFrame通过代理的响应被刷新,并且iFrame中显示的页面被转换回初始的域http://sample_shop.com(图8的步骤880:生成响应并刷新iFrame)。接着通知iFrame的创建者(在此示例中是CrossDomainXMLHttpRequest对象),并且步骤810中的方法“onreadystatechange”被调用,以便处理结果表单中的结果(图8的步骤890:调用用于处理结果的功能)。例如,iFrame可以将结果表单中的数据传递给“购物应用”615。
注意,上述示例仅是用于示例性地说明本发明的实施例,而不应被解释成对本发明的限制或穷举。在不同的上下文中,根据用户或者环境的需求,所述的步骤和代码可以被改变,而不会脱离本发明的范围。
通过以上对于本发明实施例的详细描述并结合上述示例可以看出,本发明可以高效地实现Web应用的跨域交互,从而增强了基于AJAX的富Web应用的性能。并且,本发明可以智能地处理不同大小的数据。例如,本发明可以根据数据量的大小来自动选择GET或POST。当表单中的请求/结果数据量较小时,例如小于URL的长度限制,可以使用GET来提交表单,从而优化数据传输的性能。并且,浏览器还可以使用高速缓存来进一步优化GET的操作性能。而当表单中的请求/结果数据量较大时,例如大于URL的长度限制,则可以使用POST来提交表单,从而将数据作为请求包来传输,而不会限制数据的大小。
此外,本发明的方案具备足够的安全性。一方面,用户使用的Web应用所在的域的用户凭证(例如用户名和口令)被保留在本地,而不会被传递到提供属于目标域(即需要调用的服务或访问的数据所在的域)的服务/数据的服务器端,从而确保本地关键数据的安全性。另一方面,如果目标域需要认证,则浏览器会动态地弹出认证窗口,用于用户在其中输入目标域所需的用户凭证(例如用户名和口令),该信息不会泄露给Web应用所在的本地域。
需要注意,尽管以上对于本发明的描述是基于富Web应用的,但是对于传统的Web应用,也可以等同地应用本发明。同样需要注意,尽管本发明的实施例是针对客户机/服务器的体系结构来描述的,但是本发明同样适用于属于不同的两个域的任意两台机器或者仅逻辑上独立的两个Web服务器之间的Web应用交互、以及本领域技术人员可以容易地想到的其它类似的实现方式。
在同一发明构思下,还参考图9提出了一种根据本发明一个实施例的用于Web应用的跨域交互的系统900。在所述系统中,属于第一域的Web应用需要与属于第二域的服务进行交互。如图9所示,所述系统900包括:iFrame创建装置910、表单创建装置920、表单提交装置930以及交互装置940。所述iFrame创建装置910用于在网页中创建一个iFrame 950,其中所述iFrame 950属于所述第一域。所述表单创建装置920用于在所述iFrame 950中创建表单。所述表单提交装置930用于将所创建的表单提交给提供所述属于第二域的服务的Web服务器960。所述交互装置940进一步包括响应接收装置941、域改变装置942、认证装置943。所述响应接收装置941用于通过接收所述Web服务器960的响应而刷新所述iFrame950。所述域改变装置942用于将所述iFrame 950所属的域改变为所述第二域,并通过所述表单中包含的信息来与所述属于第二域的服务进行跨域交互。所述认证装置943用于将所述提供属于第一域的服务的Web服务器中针对所述第一域的用户凭证保留在本地,从而不会泄露所述用户凭证。此外,所述Web应用可以是富Web应用,并且所述iFrame 950在网页中可以是不可见的。
此外,所述系统900可以进一步包括:用于基于与所述服务进行交互的结果在所述iFrame中创建结果表单的装置;用于将所述结果表单提交到提供属于第一域的服务的Web服务器的装置;用于通过接收所述提供属于第一域的服务的Web服务器的响应而刷新所述iFrame,将所述iFrame所属的域改变为所述第一域的装置;以及用于处理所述结果表单中的结果的装置。
此外,所述表单提交装置930可以进一步包括:用于根据所述表单中的数据量的大小,确定通过GET方法还是POST方法来提交所述表单的装置,其中当所述表单中的数据量较小时,可以使用GET方法,当所述表单中的数据量较大时,可以使用POST方法。
此外,所述用于提交结果表单的装置进一步包括:用于根据所述结果表单中的数据量的大小,确定通过GET方法还是POST方法来提交所述结果表单的装置,其中当所述结果表单中的数据量较小时,可以使用GET方法,当所述结果表单中的数据量较大时,可以使用POST方法。
此外,所述系统进一步包括:用于如果所述提供属于第二域的服务的Web服务器需要认证,则由所述Web应用动态地弹出认证窗口的装置,所述认证窗口用于用户在其中输入针对所述第二域的用户凭证。
以上详细描述了根据本发明一个实施例的用于Web应用的跨域交互的方法和系统。可以理解,方框图和/或流程图中的每个方框以及方框图和流程图中的一些方框的组合可以用一些计算机程序指令实现。这些计算机程序指令可以提供给一通用计算机、专用计算机或其它可编程数据处理设备的处理器以产生一机器,使得这些指令通过计算机或其它可编程数据处理设备的处理器的执行创建用于实现在方框图和/或流程图内或者方框内所指定的功能的装置。
尽管已经参考优选实施例具体地示出并描述了本发明,但其不是为了以公开的形式穷举或限制本发明。对于本领域的普通技术人员,可以在形式上和细节上进行各种改变而不会背离本发明的精神和范围。选择并描述了实施例是为了最好地解释本发明的原理和实际的应用,以及为了使本领域的其它普通技术人员能够理解对于各种实施例的本发明,所述实施例具有适合于预期的具体使用的各种修改。

Claims (16)

1.一种用于Web应用的跨域交互的方法,其中属于第一域的Web应用需要与属于第二域的服务进行交互,所述方法包括由所述Web应用:
在网页中创建一个iFrame,其中所述iFrame属于所述第一域;
在所述iFrame中创建表单;
将所述表单提交给提供所述属于第二域的服务的Web服务器;以及
通过接收所述Web服务器的响应而刷新所述iFrame,将所述iFrame所属的域改变为所述第二域,并通过所述表单中包含的信息来与所述属于第二域的服务进行跨域交互。
2.根据权利要求1所述的方法,其中所述方法进一步包括:
基于与所述服务进行交互的结果在所述iFrame中创建结果表单;
将所述结果表单提交到提供属于第一域的服务的Web服务器;
通过接收所述提供属于第一域的服务的Web服务器的响应而刷新所述iFrame,将所述iFrame所属的域改变为所述第一域;以及
处理所述结果表单中的结果。
3.根据权利要求1所述的方法,其中所述提交表单的步骤进一步包括:
根据所述表单中的数据量的大小,确定通过GET方法还是POST方法来提交所述表单,其中当所述表单中的数据量较小时,使用GET方法,当所述表单中的数据量较大时,使用POST方法。
4.根据权利要求2所述的方法,其中所述提交结果表单的步骤进一步包括:
根据所述结果表单中的数据量的大小,确定通过GET方法还是POST方法来提交所述结果表单,其中当所述结果表单中的数据量较小时,使用GET方法,当所述结果表单中的数据量较大时,使用POST方法。
5.根据权利要求1所述的方法,其中所述Web应用是富Web应用。
6.根据权利要求1所述的方法,其中所述iFrame在网页中不可见。
7.根据权利要求1所述的方法,进一步包括:
将所述提供属于第一域的服务的Web服务器中针对所述第一域的用户凭证保留在本地。
8.根据权利要求1所述的方法,进一步包括:
如果所述提供属于第二域的服务的Web服务器需要认证,则由所述Web应用动态地弹出认证窗口,用于用户在其中输入针对所述第二域的用户凭证。
9.一种用于Web应用的跨域交互的系统,其中属于第一域的Web应用需要与属于第二域的服务进行交互,所述系统包括:
用于在网页中创建一个iFrame的装置,其中所述iFrame属于所述第一域;
用于在所述iFrame中创建表单的装置;
用于将所述表单提交给提供所述属于第二域的服务的Web服务器的装置;以及
用于通过接收所述Web服务器的响应而刷新所述iFrame,将所述iFrame所属的域改变为所述第二域,并通过所述表单中包含的信息来与所述属于第二域的服务进行跨域交互的装置。
10.根据权利要求9所述的系统,其中所述系统进一步包括:
用于基于与所述服务进行交互的结果在所述iFrame中创建结果表单的装置;
用于将所述结果表单提交到提供属于第一域的服务的Web服务器的装置;
用于通过接收所述提供属于第一域的服务的Web服务器的响应而刷新所述iFrame,将所述iFrame所属的域改变为所述第一域的装置;以及
用于处理所述结果表单中的结果的装置。
11.根据权利要求9所述的系统,其中所述用于提交表单的装置进一步包括:
用于根据所述表单中的数据量的大小,确定通过GET方法还是POST方法来提交所述表单的装置,其中当所述表单中的数据量较小时,使用GET方法,当所述表单中的数据量较大时,使用POST方法。
12.根据权利要求10所述的系统,其中所述用于提交结果表单的装置进一步包括:
用于根据所述结果表单中的数据量的大小,确定通过GET方法还是POST方法来提交所述结果表单的装置,其中当所述结果表单中的数据量较小时,使用GET方法,当所述结果表单中的数据量较大时,使用POST方法。
13.根据权利要求9所述的系统,其中所述Web应用是富Web应用。
14.根据权利要求9所述的系统,其中所述iFrame在网页中不可见。
15.根据权利要求9所述的系统,进一步包括:
用于将所述提供属于第一域的服务的Web服务器中针对所述第一域的用户凭证保留在本地的装置。
16.根据权利要求9所述的系统,进一步包括:
用于如果所述提供属于第二域的服务的Web服务器需要认证,则由所述Web应用动态地弹出认证窗口的装置,所述认证窗口用于用户在其中输入针对所述第二域的用户凭证。
CN2008101249815A 2008-06-25 2008-06-25 用于Web应用的跨域交互的方法和系统 Active CN101615179B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2008101249815A CN101615179B (zh) 2008-06-25 2008-06-25 用于Web应用的跨域交互的方法和系统
US12/490,577 US8719421B2 (en) 2008-06-25 2009-06-24 Cross domain interaction of a web application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008101249815A CN101615179B (zh) 2008-06-25 2008-06-25 用于Web应用的跨域交互的方法和系统

Publications (2)

Publication Number Publication Date
CN101615179A true CN101615179A (zh) 2009-12-30
CN101615179B CN101615179B (zh) 2011-08-17

Family

ID=41448809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008101249815A Active CN101615179B (zh) 2008-06-25 2008-06-25 用于Web应用的跨域交互的方法和系统

Country Status (2)

Country Link
US (1) US8719421B2 (zh)
CN (1) CN101615179B (zh)

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102082793A (zh) * 2010-12-30 2011-06-01 北京汉邦高科数字技术有限公司 一种音视频服务配置的方法
CN102314467A (zh) * 2010-12-29 2012-01-11 苏州阔地网络科技有限公司 一种实现网页同步浏览的方法
CN102314469A (zh) * 2010-11-23 2012-01-11 苏州阔地网络科技有限公司 一种实现跨域请求回调的方法
CN102446224A (zh) * 2012-01-05 2012-05-09 苏州阔地网络科技有限公司 一种网页多层次区块剪取方法
CN102469148A (zh) * 2010-11-19 2012-05-23 中兴通讯股份有限公司 聊天会话接受邀请和拒绝邀请的方法及系统
CN102469138A (zh) * 2010-11-17 2012-05-23 中兴通讯股份有限公司 一种接收和删除输入文件的方法及系统
CN102469137A (zh) * 2010-11-17 2012-05-23 中兴通讯股份有限公司 一种接受文件传输邀请和拒绝文件传输邀请的方法及系统
CN102486780A (zh) * 2010-12-01 2012-06-06 腾讯科技(深圳)有限公司 异步跨域传输xml数据的方法、客户端和服务端
CN102932390A (zh) * 2011-08-11 2013-02-13 阿里巴巴集团控股有限公司 一种网络请求的处理方法和系统、网络服务提供装置
CN103095762A (zh) * 2011-11-02 2013-05-08 腾讯科技(深圳)有限公司 Web页面跨域通信方法和装置
CN103207863A (zh) * 2012-01-13 2013-07-17 腾讯科技(深圳)有限公司 页面跨域交互方法及终端
CN103294672A (zh) * 2012-02-23 2013-09-11 腾讯科技(深圳)有限公司 一种用于实现跨域拖动的方法、系统和装置
CN103443781A (zh) * 2010-11-03 2013-12-11 谷歌公司 数据递送
CN103546570A (zh) * 2013-10-29 2014-01-29 小米科技有限责任公司 网络客户端跨域请求数据的实现方法、装置及终端
CN103870551A (zh) * 2014-02-28 2014-06-18 小米科技有限责任公司 一种跨域数据获取的方法和装置
CN104021003A (zh) * 2014-06-24 2014-09-03 歌尔声学股份有限公司 修改信息管理系统首页的方法及装置
CN104391909A (zh) * 2014-11-17 2015-03-04 国云科技股份有限公司 一种iframe跨域高度自适应的方法
CN104486458A (zh) * 2014-12-15 2015-04-01 北京国双科技有限公司 跨域会话的数据处理方法和装置
CN105871947A (zh) * 2015-01-20 2016-08-17 阿里巴巴集团控股有限公司 跨域请求数据的方法及装置
CN105991599A (zh) * 2015-02-26 2016-10-05 阿里巴巴集团控股有限公司 Jsonp请求方法及装置
CN106339441A (zh) * 2016-08-22 2017-01-18 浪潮通用软件有限公司 一种表单调用方法、装置及系统
CN106575305A (zh) * 2014-09-24 2017-04-19 甲骨文国际公司 反向代理服务器内的服务
CN106776961A (zh) * 2016-12-05 2017-05-31 广州阿里巴巴文学信息技术有限公司 网页本地存储空间扩容方法、浏览器客户端及电子设备
CN107070842A (zh) * 2015-09-29 2017-08-18 西门子公司 通过要嵌入网络应用认证周围的网络应用的方法和系统
CN107566436A (zh) * 2016-07-01 2018-01-09 北京京东尚科信息技术有限公司 页面消息中心组件及消息实时推送方法和装置
CN107580013A (zh) * 2017-07-25 2018-01-12 阿里巴巴集团控股有限公司 跨域请求数据的方法及装置
WO2018126938A1 (zh) * 2017-01-09 2018-07-12 阿里巴巴集团控股有限公司 一种数据获取方法和装置
CN108509229A (zh) * 2017-12-26 2018-09-07 平安普惠企业管理有限公司 窗口跨域控制的方法、终端设备及计算机可读存储介质
CN108733559A (zh) * 2018-04-09 2018-11-02 平安普惠企业管理有限公司 页面事件的触发方法、终端设备及介质
CN108762946A (zh) * 2018-05-16 2018-11-06 福建天泉教育科技有限公司 一种跨域web端通信方法及终端
CN111145004A (zh) * 2019-12-06 2020-05-12 国网浙江省电力有限公司 基于可编辑工作流的智能财务稽核平台
US10855796B2 (en) 2016-06-28 2020-12-01 Advanced New Technologies Co., Ltd. Data storage method and device
TWI770464B (zh) * 2018-05-09 2022-07-11 華南商業銀行股份有限公司 轉帳系統及其方法

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101615179B (zh) * 2008-06-25 2011-08-17 国际商业机器公司 用于Web应用的跨域交互的方法和系统
CN101662462B (zh) * 2008-08-25 2013-01-02 国际商业机器公司 提供针对跨域交互的运行时脆弱性防护的方法和系统
US8260800B2 (en) * 2008-11-06 2012-09-04 Nexplore Technolgies, Inc. System and method for image generation, delivery, and management
US9934029B2 (en) * 2009-12-15 2018-04-03 Teradata Us, Inc. Annotation driven representational state transfer (REST) web services
US8626865B1 (en) 2010-06-07 2014-01-07 Google Inc. Shared worker application
US8438289B1 (en) * 2010-06-07 2013-05-07 Google Inc. Cross-domain communications with a shared worker application
WO2012013893A1 (fr) * 2010-07-28 2012-02-02 France Telecom Communication de données entre modules
US20120042261A1 (en) * 2010-08-12 2012-02-16 Google Inc. Sub-component instantiation and synchronization using a shared worker
FR2967856A1 (fr) * 2010-11-23 2012-05-25 France Telecom Communication entre deux applications web
CN102307220B (zh) * 2011-03-18 2014-04-02 北京思特奇信息技术股份有限公司 一种跨域网页信息交互方法
CN102984179A (zh) * 2011-09-02 2013-03-20 广东电子工业研究院有限公司 一种面向云计算操作系统进行Web服务跨域访问的方法
US9147082B2 (en) 2011-09-13 2015-09-29 Whorlr Llc Electronic messaging system with configurable delivery that maintains recipient privacy
US9319370B2 (en) * 2011-09-13 2016-04-19 Whorlr Llc Configurable website and system with access control and social network features
US9262782B2 (en) * 2012-03-14 2016-02-16 Doing Good Better, Llc Secure transaction processing system and method
RU2517252C2 (ru) * 2012-06-13 2014-05-27 Общество с ограниченной ответственностью "БАБЛГЭБ" Способ интеграции сайта в сайт
US9503501B2 (en) * 2012-09-17 2016-11-22 Salesforce.Com, Inc. Cross domain in-browser proxy
US9264507B2 (en) 2013-01-03 2016-02-16 Sap Portals Israel Ltd Cross domain communication channel
US20140245124A1 (en) * 2013-02-26 2014-08-28 Visicom Media Inc. System and method thereof for browser agnostic extension models
CN104423973B (zh) * 2013-08-20 2020-02-18 腾讯科技(深圳)有限公司 浮动框架页面加载信息的处理方法、装置及系统
US9503541B2 (en) * 2013-08-21 2016-11-22 International Business Machines Corporation Fast mobile web applications using cloud caching
US9225515B2 (en) 2013-09-13 2015-12-29 Sap Portals Israel Ltd Shared portal context session
US10769644B2 (en) 2014-03-11 2020-09-08 Adobe Inc. Cross-domain identity service
DK3518570T3 (da) 2014-03-19 2021-01-18 Bluefin Payment Sys Llc Systemer og fremgangsmåder til fremstilling af fingeraftryk til krypteringsindretninger
US11256798B2 (en) 2014-03-19 2022-02-22 Bluefin Payment Systems Llc Systems and methods for decryption as a service
US9461973B2 (en) 2014-03-19 2016-10-04 Bluefin Payment Systems, LLC Systems and methods for decryption as a service
WO2015143416A1 (en) * 2014-03-21 2015-09-24 Ptc Inc. Systems and methods for developing and using real-time data applications
US10394602B2 (en) * 2014-05-29 2019-08-27 Blackberry Limited System and method for coordinating process and memory management across domains
US9740672B2 (en) 2014-10-24 2017-08-22 POWr Inc. Systems and methods for dynamic, real time management of cross-domain web plugin content
US10805348B2 (en) 2015-09-01 2020-10-13 United Parcel Service Of America, Inc. Facilitating remote access of devices in a secure environment
US10909265B2 (en) * 2016-06-10 2021-02-02 OneTrust, LLC Application privacy scanning systems and related methods
US12118121B2 (en) 2016-06-10 2024-10-15 OneTrust, LLC Data subject access request processing systems and related methods
US11586700B2 (en) 2016-06-10 2023-02-21 OneTrust, LLC Data processing systems and methods for automatically blocking the use of tracking tools
US10587696B2 (en) 2016-07-06 2020-03-10 Nasdaq, Inc. Systems and methods for monitoring cross-domain applications in web environments
US20180349891A1 (en) * 2017-06-02 2018-12-06 Bluefin Payment Systems Llc Systems and methods for online payment processing using secure inline frames
US10311421B2 (en) 2017-06-02 2019-06-04 Bluefin Payment Systems Llc Systems and methods for managing a payment terminal via a web browser
US11711350B2 (en) 2017-06-02 2023-07-25 Bluefin Payment Systems Llc Systems and processes for vaultless tokenization and encryption
US11070534B2 (en) 2019-05-13 2021-07-20 Bluefin Payment Systems Llc Systems and processes for vaultless tokenization and encryption
WO2019183918A1 (en) * 2018-03-30 2019-10-03 Beijing Yi Zhang Yun Feng Technology Co., Ltd. Cross-domain mapped compound network instruction system
CN109829326B (zh) * 2018-11-20 2023-04-07 西安电子科技大学 基于区块链的跨域认证与公平审计去重云存储系统
US10681048B1 (en) * 2018-11-26 2020-06-09 Jpmorgan Chase Bank, N.A. Systems and methods for intercepting WebView traffic
CN111835778B (zh) * 2020-07-20 2022-09-30 上海万物新生环保科技集团有限公司 一种用于实现一级域名跨域访问的方法与设备
WO2022026564A1 (en) 2020-07-28 2022-02-03 OneTrust, LLC Systems and methods for automatically blocking the use of tracking tools
CN112491955B (zh) * 2020-10-23 2023-07-07 北京思特奇信息技术股份有限公司 一种基于代理服务器实现iframe系统数据交换的方法和系统
US11470142B2 (en) * 2021-02-16 2022-10-11 StackBlitz, Inc. Network browser engine
CN113420201B (zh) * 2021-06-09 2023-02-03 湖南大学 一种用于浏览器rpa系统的跨域元素定位与树生成方法

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1225748B1 (en) * 2001-01-19 2005-12-28 Matsushita Electric Industrial Co., Ltd. Communications terminal
IL142815A (en) * 2001-04-25 2010-06-16 Gal Trifon A method for dynamically changing one web page to another web page
US8280819B2 (en) * 2004-07-09 2012-10-02 Ebay Inc. Method and apparatus for securely displaying and communicating trusted and untrusted internet content
US7506248B2 (en) * 2005-10-14 2009-03-17 Ebay Inc. Asynchronously loading dynamically generated content across multiple internet domains
CN100535900C (zh) * 2005-12-06 2009-09-02 国际商业机器公司 用于提供异步门户页的方法和系统
US20070256003A1 (en) * 2006-04-24 2007-11-01 Seth Wagoner Platform for the interactive contextual augmentation of the web
US8250082B2 (en) * 2006-06-23 2012-08-21 Microsoft Corporation Cross domain communication
US8185737B2 (en) * 2006-06-23 2012-05-22 Microsoft Corporation Communication across domains
US7860751B2 (en) * 2006-06-27 2010-12-28 Google Inc. Cross domain customer interface updates
CN101150559A (zh) * 2006-09-21 2008-03-26 阿里巴巴公司 一种网站之间数据交换的方法及系统
US7809785B2 (en) * 2007-05-28 2010-10-05 Google Inc. System using router in a web browser for inter-domain communication
US10019570B2 (en) * 2007-06-14 2018-07-10 Microsoft Technology Licensing, Llc Protection and communication abstractions for web browsers
US7979791B2 (en) * 2007-07-30 2011-07-12 Google Inc. Cross-domain communication
US20090037517A1 (en) * 2007-08-02 2009-02-05 Randall Wayne Frei Method and system to share content between web clients
US8131591B2 (en) * 2007-09-12 2012-03-06 Microsoft Corporation Updating contents of asynchronously refreshable webpages
US20090271690A1 (en) * 2008-04-28 2009-10-29 Yahoo! Inc. Handling cross-domain web service calls
US8291475B2 (en) * 2008-04-30 2012-10-16 Microsoft Corporation Secure cross-domain communication for web mashups
US7490141B1 (en) * 2008-05-15 2009-02-10 Ibm Corporation Ajax proxy indirection for external domain requests
CN101615179B (zh) * 2008-06-25 2011-08-17 国际商业机器公司 用于Web应用的跨域交互的方法和系统
US8209706B2 (en) * 2008-06-27 2012-06-26 Microsoft Corporation Inter-frame messaging between different domains

Cited By (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103443781B (zh) * 2010-11-03 2016-10-05 谷歌公司 数据递送
CN103443781A (zh) * 2010-11-03 2013-12-11 谷歌公司 数据递送
US9602369B2 (en) 2010-11-03 2017-03-21 Google Inc. Data delivery
US9154388B2 (en) 2010-11-03 2015-10-06 Google Inc. Data delivery
US10284441B2 (en) 2010-11-03 2019-05-07 Google Llc Data delivery
CN102469137B (zh) * 2010-11-17 2015-07-22 中兴通讯股份有限公司 一种接受文件传输邀请和拒绝文件传输邀请的方法及系统
CN102469138B (zh) * 2010-11-17 2015-09-16 中兴通讯股份有限公司 一种接收和删除输入文件的方法及系统
CN102469138A (zh) * 2010-11-17 2012-05-23 中兴通讯股份有限公司 一种接收和删除输入文件的方法及系统
CN102469137A (zh) * 2010-11-17 2012-05-23 中兴通讯股份有限公司 一种接受文件传输邀请和拒绝文件传输邀请的方法及系统
CN102469148A (zh) * 2010-11-19 2012-05-23 中兴通讯股份有限公司 聊天会话接受邀请和拒绝邀请的方法及系统
CN102469148B (zh) * 2010-11-19 2015-10-28 中兴通讯股份有限公司 聊天会话接受邀请和拒绝邀请的方法及系统
CN102314469A (zh) * 2010-11-23 2012-01-11 苏州阔地网络科技有限公司 一种实现跨域请求回调的方法
CN102486780A (zh) * 2010-12-01 2012-06-06 腾讯科技(深圳)有限公司 异步跨域传输xml数据的方法、客户端和服务端
CN102314467A (zh) * 2010-12-29 2012-01-11 苏州阔地网络科技有限公司 一种实现网页同步浏览的方法
CN102082793A (zh) * 2010-12-30 2011-06-01 北京汉邦高科数字技术有限公司 一种音视频服务配置的方法
CN102932390A (zh) * 2011-08-11 2013-02-13 阿里巴巴集团控股有限公司 一种网络请求的处理方法和系统、网络服务提供装置
CN102932390B (zh) * 2011-08-11 2015-07-08 阿里巴巴集团控股有限公司 一种网络请求的处理方法和系统、网络服务提供装置
CN103095762A (zh) * 2011-11-02 2013-05-08 腾讯科技(深圳)有限公司 Web页面跨域通信方法和装置
WO2013102371A1 (zh) * 2012-01-05 2013-07-11 苏州阔地网络科技有限公司 一种网页多层次区块剪取方法
CN102446224B (zh) * 2012-01-05 2013-06-05 苏州阔地网络科技有限公司 一种网页多层次区块剪取方法
CN102446224A (zh) * 2012-01-05 2012-05-09 苏州阔地网络科技有限公司 一种网页多层次区块剪取方法
CN103207863B (zh) * 2012-01-13 2016-12-07 腾讯科技(深圳)有限公司 页面跨域交互方法及终端
CN103207863A (zh) * 2012-01-13 2013-07-17 腾讯科技(深圳)有限公司 页面跨域交互方法及终端
CN103294672A (zh) * 2012-02-23 2013-09-11 腾讯科技(深圳)有限公司 一种用于实现跨域拖动的方法、系统和装置
CN103294672B (zh) * 2012-02-23 2017-05-10 腾讯科技(深圳)有限公司 一种用于实现跨域拖动的方法、系统和装置
CN103546570A (zh) * 2013-10-29 2014-01-29 小米科技有限责任公司 网络客户端跨域请求数据的实现方法、装置及终端
CN103870551A (zh) * 2014-02-28 2014-06-18 小米科技有限责任公司 一种跨域数据获取的方法和装置
CN104021003A (zh) * 2014-06-24 2014-09-03 歌尔声学股份有限公司 修改信息管理系统首页的方法及装置
CN106575305B (zh) * 2014-09-24 2020-09-25 甲骨文国际公司 反向代理服务器内的服务
CN106575305A (zh) * 2014-09-24 2017-04-19 甲骨文国际公司 反向代理服务器内的服务
CN104391909A (zh) * 2014-11-17 2015-03-04 国云科技股份有限公司 一种iframe跨域高度自适应的方法
CN104486458A (zh) * 2014-12-15 2015-04-01 北京国双科技有限公司 跨域会话的数据处理方法和装置
CN105871947A (zh) * 2015-01-20 2016-08-17 阿里巴巴集团控股有限公司 跨域请求数据的方法及装置
CN105871947B (zh) * 2015-01-20 2019-06-07 阿里巴巴集团控股有限公司 跨域请求数据的方法及装置
CN105991599A (zh) * 2015-02-26 2016-10-05 阿里巴巴集团控股有限公司 Jsonp请求方法及装置
CN105991599B (zh) * 2015-02-26 2019-06-28 阿里巴巴集团控股有限公司 Jsonp请求方法及装置
CN107070842B (zh) * 2015-09-29 2020-05-12 西门子公司 通过要嵌入网络应用认证周围的网络应用的方法和系统
CN107070842A (zh) * 2015-09-29 2017-08-18 西门子公司 通过要嵌入网络应用认证周围的网络应用的方法和系统
US10855796B2 (en) 2016-06-28 2020-12-01 Advanced New Technologies Co., Ltd. Data storage method and device
CN107566436A (zh) * 2016-07-01 2018-01-09 北京京东尚科信息技术有限公司 页面消息中心组件及消息实时推送方法和装置
CN106339441A (zh) * 2016-08-22 2017-01-18 浪潮通用软件有限公司 一种表单调用方法、装置及系统
CN106776961B (zh) * 2016-12-05 2020-03-20 广州阿里巴巴文学信息技术有限公司 网页本地存储空间扩容方法、浏览器客户端及电子设备
CN106776961A (zh) * 2016-12-05 2017-05-31 广州阿里巴巴文学信息技术有限公司 网页本地存储空间扩容方法、浏览器客户端及电子设备
WO2018126938A1 (zh) * 2017-01-09 2018-07-12 阿里巴巴集团控股有限公司 一种数据获取方法和装置
TWI787213B (zh) * 2017-01-09 2022-12-21 開曼群島商創新先進技術有限公司 資料獲取方法、系統和裝置
CN107580013A (zh) * 2017-07-25 2018-01-12 阿里巴巴集团控股有限公司 跨域请求数据的方法及装置
CN108509229B (zh) * 2017-12-26 2021-05-04 平安普惠企业管理有限公司 窗口跨域控制的方法、终端设备及计算机可读存储介质
CN108509229A (zh) * 2017-12-26 2018-09-07 平安普惠企业管理有限公司 窗口跨域控制的方法、终端设备及计算机可读存储介质
CN108733559A (zh) * 2018-04-09 2018-11-02 平安普惠企业管理有限公司 页面事件的触发方法、终端设备及介质
CN108733559B (zh) * 2018-04-09 2023-03-28 平安普惠企业管理有限公司 页面事件的触发方法、终端设备及介质
TWI770464B (zh) * 2018-05-09 2022-07-11 華南商業銀行股份有限公司 轉帳系統及其方法
CN108762946B (zh) * 2018-05-16 2020-09-11 福建天泉教育科技有限公司 一种跨域web端通信方法及终端
CN108762946A (zh) * 2018-05-16 2018-11-06 福建天泉教育科技有限公司 一种跨域web端通信方法及终端
CN111145004A (zh) * 2019-12-06 2020-05-12 国网浙江省电力有限公司 基于可编辑工作流的智能财务稽核平台
CN111145004B (zh) * 2019-12-06 2023-11-14 国网浙江省电力有限公司 基于可编辑工作流的智能财务稽核平台

Also Published As

Publication number Publication date
US20090327421A1 (en) 2009-12-31
US8719421B2 (en) 2014-05-06
CN101615179B (zh) 2011-08-17

Similar Documents

Publication Publication Date Title
CN101615179B (zh) 用于Web应用的跨域交互的方法和系统
US8086492B2 (en) Frame-based network advertising and exchange therefor
US9348494B2 (en) Secure online communication through a widget on a web page
KR100825438B1 (ko) 번역 명령 시스템
US20100082747A1 (en) Real-time collaborative browsing
US7680883B2 (en) Dynamic integration of web sites
US6850941B1 (en) Method and system for native-byte form handling
US20110161440A1 (en) System and method for enhancing digital content
CN101405688A (zh) 细化的搜索用户界面
CA2767033A1 (en) System and method for enhancing digital content
US20100229081A1 (en) Method for Providing a Navigation Element in an Application
KR20120137629A (ko) 브랜딩을 위한 단축 url 브라우징 제공시스템, 그 제공방법, 및 웹 클라이언트
JP2002132836A (ja) ファイル生成装置、ファイル生成方法、データ管理方法、並びに情報通信端末装置
KR20090120823A (ko) 컨텐츠의 질문/답변 처리 방법 및 시스템과 이를 위한기록매체
US20160140518A9 (en) Secure online communication through a widget on a web page
JP7145215B2 (ja) ブラウザ管理システム、ブラウザ管理方法、ブラウザ管理プログラム、およびクライアントプログラム
KR101517611B1 (ko) 통신 부하를 발생시키지 않는 동영상 제공 방법
US11757956B2 (en) Internet (over the top) worldwide public chat capabilities matched to specified (“URL”) streaming content and non specified (“prenamed and hardcoded”) streaming content rooms
EP1420337A1 (en) System and method to provide a flexible user interface
KR20010089124A (ko) 네트워크를 기반으로 한 고객 홈페이지 작성 시스템 및 그방법
KR20170027327A (ko) 통신 부하를 발생시키지 않는 데이터 교환 방법
JP2021009492A (ja) クライアント装置及びサーバ装置及びそれらの制御方法及びプログラム、並びに、リモートブラウザシステム
KR100839240B1 (ko) 하이퍼 메일 서버 및 발신서버와 이를 포함하는 하이퍼메일 시스템과 그 제어방법과 하이퍼 메시지 서버 및하이퍼 메시지 시스템
JP2004013353A (ja) 画面遷移制御システム、クライアント、ウェブサーバ、画面遷移制御方法およびコンピュータプログラム
CN116468008A (zh) 信息的插入方法、装置、设备、介质及计算机程序产品

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20210510

Address after: Tortola Island, British Virgin Islands

Patentee after: Green City Plaza Co.,Ltd.

Address before: New York, USA

Patentee before: International Business Machines Corp.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240619

Address after: California, USA

Patentee after: WORKDAY Inc.

Country or region after: U.S.A.

Address before: Tortola Island, British Virgin Islands

Patentee before: Green City Plaza Co.,Ltd.

Country or region before: British Virgin Islands