admin 发布时间:2016-10-15 分类:Web 阅读:9247次 添加评论
jquery.ajax返回的数据类型只有html,json等,没有处理图片、文件等的数据流。
jquery在提高开发效率的时候也牺牲了一部分灵活性,碰到这种情况我们可以写一个自定义的XMLHttpRequest请求函数替换jquery.ajax。
因为在请求中需要添加自定义的header头,下面是核心代码(Html5):
var xhr = new XMLHttpRequest();
xhr.open("get", url, true);
xhr.responseType = "blob";
//添加请求头
xhr.setRequestHeader("Auth", "password");
xhr.onload = function () {
if (this.status == 200) {
var blob = this.response;
var img = document.createElement("img");
img.onload = function (e) {
//图片加载完成释放资源
window.URL.revokeObjectURL(img.src);
};
img.src = window.URL.createObjectURL(blob);
$("body").html(img);
}
};
xhr.send();XMLHttpRequest 在前一代时候返回类型responseType只支持DOMString和Document数据类型,在新一代标准下添加了更多数据类型。如:FormData、Blob、File、ArrayBuffer。
发表评论:
◎欢迎您的参与讨论。