ajax请求图片,二进制形式显示图片有问题

我想通过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();
阅读 3.7k
2 个回答

1.确认一下你的文件流是二进制的流还是base64的流
2. window.URL.revokeObjectURL(img.src)是不是因为这行代码影响了,注释掉看看

推荐问题