javascript - 如何显示我们通过 Ajax 调用收到的图像?

标签 javascript jquery

Web 服务器生成图片并直接发送给客户端。出于安全原因,没有图像的 URL。例如,如果我在浏览器中输入 /images/25 URL,服务器将发送它,浏览器将下载它。

现在我想从 Ajax 调用中获取此图像,然后将其显示在现有页面上。我可以获得图像数据。我的问题是:如何显示图像?

$.get("/images/25", function (rawImageData) {
   // ??? Need to add an image to DOM
});

更新

我为我的愚蠢道歉。谢谢你,JW。当然,我可以将带有 src 的 img 标签放到我的 URL 中。这是图像文件的直接 URL 还是服务器动态发送都无关紧要。

最佳答案

要扩展 Matt 的回答,您可以使用 base64 编码的 img 网址。这是 example from wikipedia该 img 标签的外观:

<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA
 AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO
 9TXL0Y4OHwAAAABJRU5ErkJggg==" alt="Red dot" />

你需要一张空白图片:

<img id="target" src="" />

您的服务器需要将图像作为 base64 字符串返回,那么您可以这样做:

$.get("/images/25", function (rawImageData) {
      $("#target").attr("src","data:image/gif;base64," + rawImageData);
});

查看此 MDN reference有关更多 base64 编码的 img 网址。

我在这里做了一个简短的演示: http://jsfiddle.net/99jAX/1/

关于javascript - 如何显示我们通过 Ajax 调用收到的图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9511302/

相关文章:

javascript - 在 jquery 中使用 ajax 调用进行过滤和分页

jquery - 将样式应用于 slider 外部的单独元素

jquery - 使用 css 和/或 jquery 智能调整图像大小

jquery - 如何根据计算出的数字为 div 分配类别

javascript - Phonegap & Javascript -- Div 的动态调整大小

php - 将 javascript 文件置于用户身份验证之后的最佳实践?

javascript - 使用 Angular 从 Google Feed API 获取图像

jquery - 如何在 youtube 订阅小部件上更改 CSS

javascript - jQuery slider 图像居中建议

javascript - Bootstrap 模式无法正确加载