`
hgz123
  • 浏览: 107890 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

ajax中采用了“沙箱”机制

阅读更多

欢迎访问: www.ptcms.cn

 

 

Ajax 采用一种沙箱安全模型。因此,Ajax 代码(具体来说就是 XMLHttpRequest 对象)只能对所在的同一个域发送请求。以后的文章中将进一步介绍安全和 Ajax,现在只要知道在本地机器上运行的代码只能对本地机器上的服务器端脚本发送请求。如果让 Ajax 代码在 www.breakneckpizza.com 上运行,则必须 www.breakneck.com 中运行的脚本发送请求。

清单 7. 建立请求 URL

<script language="javascript" type="text/javascript">
   var request = false;
   try {
     request = new XMLHttpRequest();
   } catch (trymicrosoft) {
     try {
       request = new ActiveXObject("Msxml2.XMLHTTP");
     } catch (othermicrosoft) {
       try {
         request = new ActiveXObject("Microsoft.XMLHTTP");
       } catch (failed) {
         request = false;
       }  
     }
   }
   if (!request)
     alert("Error initializing XMLHttpRequest!");
   function getCustomerInfo() {
     var phone = document.getElementById("phone").value;
     var url = "/cgi-local/lookupCustomer.php?phone=" + escape(phone);
   }
</script>

 

这里没有难懂的地方。首先,代码创建了一个新变量 phone,并把 ID 为 “phone” 的表单字段的值赋给它。清单 8 展示了这个表单的 XHTML,其中可以看到 phone 字段及其 id 属性。


清单 8. Break Neck Pizza 表单

 <body>
  <p><img src="breakneck-logo_4c.gif" alt="Break Neck Pizza" /></p>
  <form action="POST">
   <p>Enter your phone number:
    <input type="text" size="14" name="phone" id="phone" 
           onChange="getCustomerInfo();" />
   </p>
   <p>Your order will be delivered to:</p>
   <div id="address"></div>
   <p>Type your order in here:</p>
   <p><textarea name="order" rows="6" cols="50" id="order"></textarea></p>
   <p><input type="submit" value="Order Pizza" id="submit" /></p>
  </form>
 </body>

 

还要注意,当用户输入电话号码或者改变电话号码时,将触发 清单 8 所示的 getCustomerInfo() 方法。该方法取得电话号码并构造存储在 url 变量中的 URL 字符串。记住,由于 Ajax 代码是沙箱型的,因而只能连接到同一个域,实际上 URL 中不需要域名。该例中的脚本名为 /cgi-local/lookupCustomer.php。最后,电话号码作为 GET 参数附加到该脚本中:"phone=" + escape(phone)

如果以前没用见过 escape() 方法,它用于转义不能用明文正确发送的任何字符。比如,电话号码中的空格将被转换成字符 %20,从而能够在 URL 中传递这些字符。

可以根据需要添加任意多个参数。比如,如果需要增加另一个参数,只需要将其附加到 URL 中并用 “与”(&)字符分开 [第一个参数用问号(?)和脚本名分开]。

分享到:
评论

相关推荐

    如何利用AJAX技术改进在线考试系统

    - **安全机制**:采用沙箱安全模型,限制Ajax请求仅能向同域的服务器发送,确保数据的安全性和考试的公正性。 ##### 2. 系统实现 - **XMLHttpRequest对象**:作为AJAX的核心组件,用于处理客户端与服务器之间的...

    基于ajax技术提升Web考试系统性能的研究.doc

    4. **安全性**:Ajax采用沙箱安全模型,限制了请求的源域名,确保了只有考试服务器的脚本可以与服务器通信,增强了系统的安全性。 【实现细节】 实现Ajax功能的关键是XMLHttpRequest对象,它是Ajax通信的核心。...

    java微信支付demo

    9. **H5页面与Java后端的交互**:前端通过Ajax请求获取预支付交易会话标识等信息,后端则通过微信支付接口获取这些数据,两者之间的通信需要确保数据安全,通常采用JSON格式进行数据交换。 10. **微信支付沙箱环境*...

    servlet applet通讯的例子

    Applet通常运行在沙箱环境中,对系统资源访问有限制。因此,敏感操作如文件读写、网络访问等可能需要用户权限或使用签名的Applet。 5. **HTTP请求和响应**: - Applet通过HttpURLConnection发送请求,可以设置请求...

    WPF入门白皮书(中文资料)

    2. **数据绑定**: WPF中的数据绑定机制使UI元素可以直接与应用程序数据源关联,实现数据驱动的UI更新。这极大地简化了UI和业务逻辑之间的交互。 3. **控件**: WPF包含丰富的内置控件库,如按钮、文本框、列表视图等...

    JavaScript技术讲座.doc

    它不强制使用类(class)的概念,而是采用了原型继承(prototype inheritance)机制,使得对象能够直接复制其他对象的属性和方法。 2. **事件驱动**:JavaScript支持事件驱动编程,这意味着它可以响应用户的操作,...

    支付宝即时到帐交易服务接口net05_utf-8

    9. **测试与上线**:在正式上线前,开发者需要在支付宝提供的沙箱环境中进行测试,验证接口的正确性和稳定性,确保所有功能在实际环境中能够正常工作。 综上所述,支付宝即时到帐交易服务接口net05_utf-8涉及到的...

    电子商务网站支付接口应用

    - 上线前,需在沙箱环境中模拟真实交易进行测试,一旦验证无误,再将接口部署到生产环境。 总结起来,电子商务网站支付接口应用涉及到多方面的技术和流程,包括接口设计、安全策略、第三方支付平台的集成、开发...

    flex 4 help

    Flex提供了多种机制来确保应用程序的安全,包括沙箱策略、网络连接控制等。 - **模块化应用程序**:通过将应用程序划分为多个可独立开发和部署的模块,可以提高开发效率和灵活性。Flex支持模块化设计,允许开发者...

    1号店完整项目(包括前后台)

    以下是这个项目中涉及的主要知识点: 1. **前端开发**: - **HTML5与CSS3**:页面结构的基础,HTML5提供了更多的语义化标签,如`&lt;header&gt;`、`&lt;footer&gt;`等,CSS3则引入了更多样式效果,如阴影、过渡、动画等。 - *...

    JAVA软件工程课程体系

    - **安全性**:JAVA提供了一套安全机制来防止恶意代码的执行,包括沙箱模型、权限控制等。 - **易用性**:JAVA简化了许多C++中的复杂特性,如自动内存管理和垃圾回收机制,使得开发更为便捷。 - **开发周期短**:...

    Silverlight.rar

    8. **安全性**:Silverlight采用了沙箱模型来限制插件的权限,保护用户系统免受恶意代码的侵害。此外,它支持代码访问安全和数据加密,确保应用的安全性。 **发展与现状** 然而,随着HTML5的崛起和移动设备的普及...

    ArcGIS RIA开发实践【背景篇】【Flex篇】

    2. **网络效率高**:RIA通常采用异步数据传输方式,如AJAX技术,减少了页面重载的需求,提高了应用程序的响应速度。 3. **交互能力强**:RIA提供了更多的交互方式,使得用户与应用之间的互动更加流畅自然。 4. **...

    cursedCats-crx插件

    值得注意的是,由于这款插件的目标是处理西班牙语环境下的内容,因此它可能内置了对西班牙语网站的识别机制,或者能够处理特定的西班牙语关键词,以确保在这些环境中更准确地替换图片。同时,考虑到隐私和安全,这款...

Global site tag (gtag.js) - Google Analytics