javascript - AJAX - 请求响应后 img 标签中出现奇怪的字符

标签 javascript jquery html css ajax

我无法解决我发出的 AJAX 请求的问题(顺便说一句,我是 AJAX 新手)。我有一个 API 设置,我想使用授权 header 检索 png 图像,该 header 使用我提供的 token (存储在本地存储中)。例如,如果我要使用 Auth header 访问图像,那么我会这样做...

$.ajaxSetup({headers: {"Authorization" : localStorage.token}});

我能够检索图像。我可以在 Chrome 的“网络”选项卡中看到它,但是当我使用下面的方法将其附加到我的 div 时...

$.ajax({
    //Use commas for several parameters
    type: 'GET',
    url: *url of image*,
    contentType: 'image/png',
    success: function (data) {
    binary = data;
    $("#image").attr("src", 'data:image/png;base64,'+ data);
}

...它以这种奇怪的字符格式出现(如下所示):

div id="image" src="data:image/png;base64, PNG

IHDRww^ÀþIDATxÚìÝ|ÔWº?þ½¿ÿ½Ý.ÅâÉd2îdâ®BB ÁÝÝ )îÞbÅÝ¥TÐzi)Ô ÞRÙn»rï]»+w·{þçùÌ<Ãd]ùýV¾çõz¿H&I°Ï÷ç<çï}OÊø;æO1ªzhÔÀdÆþKȤ!......." etc

我希望它以图像或 b64 字符串的形式返回,我可以将其简单地放入 src 参数中。我在网上到处搜索,似乎找不到答案。

有什么想法吗?我非常感谢您的宝贵时间。

This is the response I receive

最佳答案

您的代码正在下载二进制格式的图像。

您需要将二进制文件编码为 Base64 才能以 Base64 形式显示图像。按照此答案中的说明使用 btoa:https://stackoverflow.com/a/247261/2223027

关于javascript - AJAX - 请求响应后 img 标签中出现奇怪的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47954891/

相关文章:

javascript - 使用参数作为属性

javascript - 如何创建一个简单的画廊,在悬停和单击文本时显示图像?

javascript - 如何包装第一个元素,然后每个n?

javascript - jquery Accordion 切换的加减号

html - 如何在css中将一个元素定位在另一个元素之上

html - 如何在具有固定布局的 <td> 标签的下一行打印字符?

Javascript数组按时间排序html表

javascript - highcharts-vue 给出有关 highcharts HTML 元素的错误

等效于 LINQ Any() 的 JavaScript/jQuery

javascript - 如何使用 Javascript 处理 CSV 中的逗号