Javascript 通过AJAX返回图像数据
好了,伙计们,这件看起来很简单,但让我抓狂。现在是凌晨2点,所以我要把它放在那里Javascript 通过AJAX返回图像数据,javascript,ajax,Javascript,Ajax,好了,伙计们,这件看起来很简单,但让我抓狂。现在是凌晨2点,所以我要把它放在那里 我正在制作一个概念验证页面,加载json数据并将其放入一个表中。完成了 对于主json数组中的每个对象,都有一个带有ID的图像数组 这些ID可以与dataID结合使用,形成另一个AJAX请求的长url,这次是一个图像 这是棘手的部分。在最终处理CORS问题之后,我终于收到了带有响应的数据包。基本上我是以一种最奇怪的方式被搞砸了。以下是我的回答中的一小部分: ÿØÿàJFIFÿÛ ( %!1!%)+...!683
ÿØÿàJFIFÿÛ (
%!1!%)+...!683-7(-.+...
那对我来说是垃圾。但这与这张照片的拍摄方式有关。我一直在处理内容类型,但即使是文本/纯文本看起来也是这样。我是从开发者工具的视图和Chrome的网络标签中得到的。当我从响应转到“预览”时,文本内容如下:
“/9j/4AAQSKZJRGABAQAAAQABAD/2wCEAAkGBxMTEhUSEhMVFhUWGBkaGBcXGBYYGBseGBsaFxoXGRo
Higgb…
基本上,“预览”选项卡中的内容是完美的。我把它放在src='data:image/png之后的图像标签中;base64,“
+这些东西,它工作得非常好。我真正想要的是Chrome是如何从回复中得到这些文字的?我如何从success:function()data{}
从$.ajax调用
中获得它呢。我将把我正在做的事情放在代码下面,但这是相当标准的。数据包返回我想要的所有内容,只是预览版本,而不是响应版本。我找不到任何文件
var response = $.ajax({
type: 'GET',
url: 'http://dev.dragonflyathletics.com:1337/api/dfkey/events/' + item.id + '/media/' + imageID,
contentType: 'multipart/form-data',
headers: {
'Authorization': 'Basic ' + btoa('**:**')
},
success: function (data) {
a = data;
imgTag = '<img alt="' + item.images[0].caption + '" src="data:image/png;base64,' + data + '">';
},
error: function (jqXHR, textStatus, errorThrown) {
console.log(errorThrown);
//alert(jqXHR);
//alert(textStatus);
//alert(errorThrown);
//requestRetry('events', 3);
}
});
var响应=$.ajax({
键入:“GET”,
网址:'http://dev.dragonflyathletics.com:1337/api/dfkey/events/'+item.id+'/media/'+imageID,
contentType:“多部分/表单数据”,
标题:{
“授权”:“基本”+btoa(“**:**”)
},
成功:功能(数据){
a=数据;
imgTag='';
},
错误:函数(jqXHR、textStatus、errorshown){
console.log(错误抛出);
//警报(jqXHR);
//警报(文本状态);
//警报(错误抛出);
//请求重试('events',3);
}
});
请帮帮我,我会在早上标记答案,看起来有点像是在解码Base64。也许可以指定您希望得到什么样的
dataType
?如果当您以base64
的形式输入图像时,图像可以正常工作,那么文本就是这样。也许这可以帮助@tomacco Nice find-我不知道您可以这样做。