XHR2.0

XMLHttpRequest2.0是XHR的新版本,针对老版本的XHR对象的问题作出了很多的改进

1.可以设置HTTP请求时限

增加timeout属性,设置http请求时限

xhr.timeout = 3000;

指定了最长等待时间为3000毫秒,过了这个时间之后,会停止请求。

xhr.ontimeout = function(event){

alert("请求超时");

}

xhr的新方法timeout,指定回调函数。

目前opera、firefox和IE10 支持。

2.新增FormData对象,用来模拟表单

var formdata = new FormData();

formdata.append('name','zhangsan');

formdata.append('age',23);

xhr.send(formdata);

创建一个FormData对象,并且为其添加表单项,最后传送FormData对象。与表单提交的效果是一样的。

3.不仅可以发送文本信息,还可以上传文件

var formdata = new FormData();

for(var i = 0;i<files.length;i++){

formdata.append('files[]',files[i]);

}

xhr.send(formdata);

4.跨域资源共享————CORS

xhr.open('GET', 'http://other.server/and/path/to/script');

5.进度信息

在传送数据时,有一个progress事件,分为上传和下载,上传属于XMLHttpRequest对象,下载属于XMLHttpRequest.upload对象

xhr.onprogress = updateProgress;

xhr.upload.onprogress = updateProgress;

function updateProgress(event) {

    if (event.lengthComputable) {

      var percentComplete = event.loaded / event.total;  //已经传输的字节数和需要传输的总字节

    }

  }

还有以下几种方式可以指定回调函数:

* load事件:传输成功完成。

* abort事件:传输被用户取消。

* error事件:传输中出现错误。

* loadstart事件:传输开始。

* loadEnd事件:传输结束,但是不知道成功还是失败。

6.可以接受二进制数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值