我想通过ajax请求图片
vm.ajaxGet('/img/logo.png', function(data) {
//这里data,就是图片本身的文件流,测试ajax没有问题
var img = document.createElement("img");
img.onload = function(e) {
window.URL.revokeObjectURL(img.src); // 清除释放
};
img.src = window.URL.createObjectURL(new Blob([data], { type: "image/png" }));
document.body.appendChild(img);
});
无法显示图片,请教大神哪里出了问题呢
已解决:
var xhr = new XMLHttpRequest();
xhr.open('GET', url, true);
xhr.responseType = "blob";//关键的一步
xhr.onreadystatechange = function() {
if (xhr.readyState == 4) {
if (xhr.status == 200) {
var blod = this.response;
var src = URL.createObjectURL(blod);
}
}
};
xhr.send();
热门评论:
瘦子江 2018-7-20 1:53 回复:
吧代码贴齐全了哈
jsoncode 2018-7-20 2:14 回复:
这就是完整的代码啊,引用一个jquery,执行一个ajax,难道引用jq的也放出来吗
网友回答:
SomeThinkings 2018-7-21 9:29 回复:
已被采纳
参考这篇:ajax请求并处理二进制流(图片)
https://segmentfault.com/q/10...
jsoncode 2018-7-23 10:19 回复:SomeThinkings
关键信息就在这一步:xhr.responseType = "blob";多谢,已解决
厦冰 2018-7-21 8:19 回复:
1.确认一下你的文件流是二进制的流还是base64的流
2.window.URL.revokeObjectURL(img.src)
是不是因为这行代码影响了,注释掉看看