* 可以设置HTTP请求的时限。
* 可以使用FormData对象管理表单数据。
* 可以上传文件。
* 可以请求不同域名下的数据(跨域请求)。
* 可以获取服务器端的二进制数据。
* 可以获得数据传输的进度信息。
vat xhr = new XMlHttpRequest()
responseType设为blob,表示服务器传回的是二进制对象
如果服务器返回文本数据,这个属性的值是text
responseType设为arraybuffer,把二进制数据装在一个数组里
本地接收响应设置:
xhr.response 接收二进制文件 接收数据的时候,用浏览器自带的Blob对象即可
var blob = new Blob([xhr.response],{type:'image/png'}) 以二进制的形式接收
xhr.responseText 接收文本
传送数据的时候,有一个progress事件,用来返回进度信息。
它分成上传和下载两种情况。
progress 事件在使用 file: 协议的情况下是无效的。
下载的progress事件属于XMLHttpRequest对象,
上传的progress事件属于XMLHttpRequest.upload对象。
在回调中event 有三个进度相关属性
event.total是需要传输的总字节,
event.loaded是已经传输的字节。
event.lengthComputable不为真(是否有文件传输),则event.total等于0
使用Math.round(100* e.loaded/ e.total) + \'%\';计算进度信息
对于任何具体请求,浏览器将只会触发load、abort、timeout和error事件中的一个,还有progress事件