Javascript 无法显示二进制图像
我试图通过使用Ajax从URL获取图像,并希望将其转换为数据URL 到目前为止,我已经做了以下事情,但这些都不起作用:Javascript 无法显示二进制图像,javascript,jquery,ajax,character-encoding,base64,Javascript,Jquery,Ajax,Character Encoding,Base64,我试图通过使用Ajax从URL获取图像,并希望将其转换为数据URL 到目前为止,我已经做了以下事情,但这些都不起作用: sforce.connection.remoteFunction({ url : newURL, mimeType: 'text/plain', requestHeaders: {"responseType":
sforce.connection.remoteFunction({
url : newURL,
mimeType: 'text/plain',
requestHeaders: {"responseType": "arraybuffer"},
onSuccess:function(response){
console.log(newURL);
var reader = new FileReader();
reader.onload = function(){
var dataURL = reader.result;
var output = document.getElementById(imageID);
output.src = dataURL;
};
var blob = new Blob([response], {type: "image/png"});
console.log(blob);
reader.readAsDataURL(blob);
}
上述代码返回数据url,但不显示任何已损坏的图像
我也做了以下事情:
首先将响应二进制字符串转换为如下数组
var bytes=新的Uint8Arrayresponse.length;
对于var i=0;i你能正确地得到图像的斑点吗?i、 它的大小是图像的大小,对吗? 如果是,那么您可能只是缺少这一行—从blob创建blobUrl
var blob = new Blob([response], {type: "image/png"});
var blobUrl= URL.createObjectURL(blob); //create blobUrl from blob
console.log(blob);
console.log(blobUrl)
reader.readAsDataURL(blobUrl);
您是否实现了我的答案并检查了它是否有效?它给出了以下错误:未能在“FileReader”上执行“readAsDataURL”:参数不是Blob。此请求存在跨域问题,我正在salesforce代理服务器上执行此操作,因此无法在plnkr上复制此操作。如果您有空,我可以与您共享我的屏幕