【发布时间】:2020-06-15 22:23:59
【问题描述】:
我关注this回答&文件下载成功。面临的问题是将下载的图像文件设置为img.src 标签。
代码:
function onReadyState(e){
let r = e.target;
if(r.readyState != 4 || r.status != 200){
return
}
console.log(r)
let img = document.getElementById('downloaded-img')
let base64 = btoa(r.response)
img.src = 'data:image/jpg;base64,'+base64
}
我尝试将 responseText 转换为 base64 以设置 img.scr 以显示下载的图像。但我得到了错误,
未捕获的 DOMException:无法在“窗口”上执行“btoa”: 要编码的字符串包含 Latin1 范围之外的字符。 在 XMLHttpRequest.downloadCompleted
然后我按照this 的回答使用下面的代码。
let base64 = btoa(unescape(encodeURIComponent(r.responseText)))
错误消失了。但是img 仍然是空格。我该如何解决?提前谢谢...
更新: 我使用了this 链接。它抛出以下错误,
访问 XMLHttpRequest 在 'https://cdn.dribbble.com/users/93493/screenshots/1445193/notfound.png' 来自原点“null”已被 CORS 策略阻止:否 请求中存在“Access-Control-Allow-Origin”标头 资源。
我也使用了this 链接,没有任何错误但是我得到了相同的空白区域而不是图像。
【问题讨论】:
-
是否至少显示未找到图像的图标(类似于this)?
-
@RHShanks92,抛出错误说
Access to XMLHttpRequest at 'https://cdn.dribbble.com/users/93493/screenshots/1445193/notfound.png' from origin 'null' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. -
还有this one?
-
@RHShanks92,是的,第二个加载数据。但同样的空白区域。我用你的链接更新了问题
标签: javascript html css