前言
可以通过设置一个XMLHttpRequest对象的 responseType
属性来改变一个从服务器上返回的响应的数据类型。
可用的属性值为空字符串 (默认), "arraybuffer", "blob", "document","json" 和 "text". response属性的值会根据
responseType属性包含实体主体(entity body)。
它可能会是一个 ArrayBuffer
, Blob
, Document
,JSON
, string,或者为NULL(如果请求未完成或失败)。
读取二进制数据
通过给responseType属性设置为“blob”
,将二进制文件读取为Blob
类型的数据。
var oReq = new XMLHttpRequest();
oReq.open("GET", "/myfile.png", true);
oReq.responseType = "blob";
oReq.onload = function(oEvent) {
var blob = oReq.response;
// ...
};
oReq.send();
发送二进制数据
XMLHttpRequest对象的send方法
已被增强,可以通过简单的传入一个ArrayBuffer
, Blob
, 或者 File
对象来发送二进制数据。
var oReq = new XMLHttpRequest();
oReq.open("POST", url, true);
oReq.onload = function (oEvent) {
// 上传完成后.
};
var bb = new BlobBuilder(); // 需要合适的前缀: window.MozBlobBuilder 或者 window.WebKitBlobBuilder
bb.append('abc123');
oReq.send(bb.getBlob('text/plain'));