假设我只有图像的URL,我想从跨域脚本中获取它的BAse64字符串值,而不使用DOM或Canvas或jQuery。这可能吗?...只使用纯Javascript?
答案 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);
});
});