dojo :dojo.xhrGet

1. dojo 异步调用: dojo.xhrGet

function helloWorld(){
  dojo.xhrGet({
    url: "helloworld.txt" ,
    handleAs: "text",
    load: function(response, ioArgs){alert(response);},
    error: function(error, ioArgs){alert(error.message);}
  });
}

url:请求的服务器资源 url,url 标识的只能是文本文件,而不能是二进制文件。

(获取服务器上与引用此 Javascript 脚本的页面同一目录下的 helloworld.txt 文件)

handleAs:返回的数据类型,可以是 text(默认)、json、json-comment-optional, json-comment-filtered、javascript、xml 。

Dojo 将根据 handleAs 设置的数据类型对从服务器返回的数据进行预处理,再传给 load 属性指向的回调函数。

load:它的值是一个函数,这个函数在请求的资源成功返回之后被调用,实际上就是一回调函数。

error:它的值也是一个回调函数,但是只在 http 请求出错之后(比如,404 错误:请求的资源找不到)才被调用。

回调函数的参数:

response:表示从服务器端返回的数据,Dojo 已经根据 handleAs 设置的数据类型进行了预处理。

ioArgs: 这是一个对象,包含调用 xhrGet 时使用的一些参数。之所以把这些信息放在一个对象中并传递给回调函数是为了给回调函数一个执行“上下文”,让回调函数知道自己属于哪个 HTTP 请求,请求有哪些参数,返回的数据是什么类型等。这些信息在调试程序时特别有用。

  • ioArgs.url:请求的 URL,与调用 xhrGet 时设置的值一样。
  • ioArgs.query:请求中包含的参数, URL 中“ ? ”后面的内容。
  • ioArgs.handAs:如何对返回的数据进行预处理,与调用 xhrGet 时设置的值一样。
  • ioArgs.xhr: xhrGet 函数使用的 XHR 对象。

handleAs:预处理方式

text ->默认值,不对返回的数据做任何处理
xml ->返回 XHR 对象的 responseXML
javascript ->使用 dojo.eval 处理返回的数据,返回处理结果
json ->使用 dojo.fromJSon 来处理返回的数据,返回生成的 Json 对象
json-comment-optional ->如果有数据包含在注释符中,则只使用 dojo.fromJSon 处理这部分数据,如果没有数据包含在注释符中,

则使用 dojo.fromJSon 处理全部数据。
json-comment-filtered ->数据应该包含在 /* … */ 中,返回使用 dojo.fromJSon 生成的 Json 对象,如果数据不是包含在注释符中则不处理。

2.xhrGet : 提交表单

 function submitForm(){
 dojo.xhrGet({
  form: "loginForm" ,
  handleAs: "text" ,
  handle: handler,
  content: { pwd: "modified" },
  sync: false
 });
 return false;
 }

form:需要异步提交的表单的 id 。只有把它设置成想要异步提交的表单的 id,并在这个表单的 onsubmit 事件中调用自定义的 submitForm() 函数,才能真正做到异步提交。注意在 submitForm 函数中最后返回了 false,这是为了阻止系统默认的表单提交事件,让表单提交异步进行,如果不返回 false,会引起页面跳转。

handle:handle 也是一个回调函数,在 xhrGet 返回时被调用,正常和错误返回的情况都能处理,可以说是 load 和 error 的混合体,但优先级比 load 低,只有在没有设置 load 时才起作用。

content:在这里可以修改来自表单的信息,在清单 6 所示的例子中,就使用这一属性修改了用户登录时输入的密码。

sync:设置同步还是异步提交。默认是异步提交,所以在清单 6 以前的例子中并没有设置这一属性。

需要注意的是:虽然表单提交的默认方法是 POST,但当使用 xhrGet 提交时,表单提交方式就自动改为 GET,所有表单的数据都会变成查询字符串出现在 URL 中。所以在服务器端只能从查询字符串中取得这些提交的信息。在 jsp 中是:request.getQueryString(“PWD”),而在 php 中可以使用 $_GET[“PWD”] 在服务器端获取表单字段。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值