Javascript:从图像URL获取Base64字符串

时间:2016-02-24 17:59:36

标签: javascript base64

假设我只有图像的URL,我想从跨域脚本中获取它的BAse64字符串值,而不使用DOM或Canvas或jQuery。这可能吗?...只使用纯Javascript?

1 个答案:

答案 0 :(得分:4)

如果图像是跨域资源,除非服务器使用适当的CORS标头提供图像,否则您将无法读取它。浏览器永远不允许脚本读取跨源资源的内容(这是同源策略的核心),除非跨源服务器明确允许使用CORS。

假设你的图像带有适当的CORS标题(或者只是同源图像),你可以将图像作为Blob获取(使用responseType)并将其作为文件读取以获取base64编码的data: URL:

var xhr = new XMLHttpRequest()
xhr.open("GET", "myimg.png");
xhr.responseType = "blob";
xhr.send();
xhr.addEventListener("load", function() {
    var reader = new FileReader();
    reader.readAsDataURL(xhr.response); 
    reader.addEventListener("loadend", function() {             
        console.log(reader.result);
    });
});