快速业务通道

关于Ajax技术的注意事项

作者 佚名技术 来源 网页制作 浏览 发布时间 2012-03-07

16.6  关于Ajax技术的注意事项

使用JavaScript来实现客户端/服务器的通信,极大地扩展了JavaScript语言的功能。但是,使用这种强大功能的同时,也带来了一些需要注意的问题。

在这一小节中,前两个问题将分别讨论使用Ajax技术时“同源策略”的问题,以及使用XMLHttpRequest对象时所带来的ActiveX控件问题。第三个问题将讨论Ajax的可用性问题,即Ajax技术改变了页面中的某些方面,并如何解决这些问题。

16.6.1  同源策略

早在Netscape Navigator 2.0浏览器时代,JavaScript代码就不能访问非同源的脚本或者页面。这是浏览器所遵循的一个重要的安全措施。否则,一些恶意代码的编写者就能在任何地方执行恶意的代码。同源策略指的是,仅当两个页面的协议(HTTP)、端口号(默认时为80端口)和主机名相同时,这两个页面才是同源的。

例如,下面这两个页面:

●       页面1的位置为http://www.site.com/folder/mypage1.htm

●       页面2的位置为http://www.site.com/folder10/mypage2.htm

根据同源策略的要求,这两个页面是同源的。因为这两个页面具有相同的主机名(www.site.com),使用了相同的协议(HTTP),并访问了相同的端口(这两个页面并没有声明端口,因此使用的是默认的80端口)。由于这两个页面是同源的,因此一个页面中的JavaScript将可以访问另一个页面。

再如下面的两个页面:

●       页面1的位置为http://www.site.com/folder/mypage1.htm

●       页面2的位置为https://www.site.com/folder/mypage2.htm

显然,这两个页面并不是同源的。虽然这两个页面的主机名和端口号是相同的,但是却使用了不同的协议。页面1使用的是HTTP协议,而页面2使用的是HTTPS协议。这一差异使得浏览器将这两个页面视为两个不同的源。因此,其中一个页面中的JavaScript将无法访问另一个页面。

那么,这与Ajax技术有什么关系呢?由于Ajax技术中大量使用了JavaScript,因此同源策略几乎影响到Ajax的每一方面。例如,由于同源策略的限制,XMLHttpRequest对象将无法访问任何非同源的文件。但是,我们可以采用一种很简单方式来解决这一问题,即使用一个同源的页面作为代理(proxy),通过该代理来获取另一个非同源服务器上的数据。同源策略同样影响到使用frame/iframe方式来实现的Ajax技术,即使两个页面位于同一个框架集中,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号