WEB开发网
开发学院软件开发Java 使用 Dojo 的 Ajax 应用开发进阶教程,第 7 部分:... 阅读

使用 Dojo 的 Ajax 应用开发进阶教程,第 7 部分: Dojo 核心库深入介绍

 2010-09-26 00:00:00 来源:WEB开发网   
核心提示: 脚本XMLHTTPRequest 请求受到浏览器安全模型的限制,不能访问与当前页面不同的域上的资源,使用 Dojo 的 Ajax 应用开发进阶教程,第 7 部分: Dojo 核心库深入介绍(4),跨域的请求需要由服务器端的代理来完成,与 XMLHTTPRequest 不同的是,如果不指定则默认是

脚本

XMLHTTPRequest 请求受到浏览器安全模型的限制,不能访问与当前页面不同的域上的资源。跨域的请求需要由服务器端的代理来完成。与 XMLHTTPRequest 不同的是,<script> 元素并没有这样的限制,其 src 属性可以指向任何域上的资源。浏览器会负责加载对应的 JavaScript 脚本并执行。这就提供了一种简便的方式来访问跨域的资源。不过这种方式只适用于传输的内容是 JavaScript 脚本或是 JSON 格式数据的情况。

典型的做法是使用 JSONP 协议来传输 JSON 数据。服务器端把 JSON 数据作为参数,封装在一个 JavaScript 方法的调用中。浏览器获取到这段 JavaScript 脚本并执行之后,JavaScript 方法会被调用,JSON 数据就被成功的传递给客户端应用。JavaScript 方法的名称由客户端来指定。在 JSONP 请求的 URL 中,一般会有一个查询参数用来指定此 JavaScript 方法的名称。该参数的名称由服务器端确定。

Dojo 核心库中包含的支持脚本 I/O 的 dojo.io.script模块可以很方便的使用 JSONP 协议。使用脚本只能发送 HTTP GET 请求。dojo.io.script.get()方法用来获取数据,其参数与 dojo.xhrGet()方法类似,也是一个包含一系列属性的 JavaScript 对象。在此 JavaScript 对象中,除了可以使用 dojo.xhrGet()中允许的属性之外,还可以使用 callbackParamName、jsonp、checkString和 frameDoc等属性。属性 callbackParamName和 jsonp的含义相同,都是表示 JSONP 请求中代表回调 JavaScript 方法名称的参数的名字。从 Dojo 1.4 开始,推荐使用属性 jsonp。属性 checkString表示的字符串用来检测脚本是否加载成功。一般来说,当脚本加载成功并执行之后,会创建一些新的变量。通过检测某个变量是否存在,就可以判断脚本是否加载成功。比如 checkString的值是 myData,那么会通过 eval("typeof(myData) != 'undefined'")来判断脚本是否加载成功。属性 frameDoc表示的是脚本 <script> 元素所添加到的文档对象。如果不指定则默认是当前页面的文档对象。dojo.io.script.get()的使用也比较简单,如 代码清单 2 所示。

上一页  1 2 3 4 5 6 7 8 9  下一页

Tags:使用 Dojo Ajax

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接