Img 标签 src 调用 API 返回 base64 字符串的解决办法

在前端开发过程中,我们经常会遇到动态加载图片的需求。一种常见的方法是通过 JavaScript 向后端 API 发送请求,获取图片数据并将其转换为 Base64 字符串来显示。本文将详细介绍如何实现这一功能,并提供多个示例代码片段来帮助开发者更好地理解这一过程。

基本概念与作用

在 Web 开发中,<img> 标签用于展示图像。当图像源(src 属性)指向一个 Base64 编码的字符串时,浏览器会直接解析该字符串并在页面上显示对应的图像。这种方式非常适用于较小的图像文件,如图标、Logo 或者简单的图形,因为可以减少 HTTP 请求的数量,从而提高页面加载速度。

示例一:使用 Fetch API 获取 Base64 图像

代码示例

// 示例:使用 Fetch API 从服务器获取 Base64 编码的图像数据
async function fetchImage() {
   
  const response = await fetch('https://api.example.com/image');
  if (!response.ok) {
   
    throw new Error(`Failed to fetch image: ${
     response.statusText}`);
  }

  // 将 Blob 对象转换为 Base64 字符串
  const blob = await response.blob();
  const urlCreator = window.URL || window.webkitURL;
  const imageUrl = urlCreator.createObjectURL(blob);

  // 在 <img> 标签中显示图像
  const imgElement = document.createElement('img');
  imgElement.src = imageUrl;
  document.body.appendChild(imgElement);
}

fetchImage().catch(console.error);

说明

这段代码使用了 Fetch API 来请求图像数据,并将响应体转换为 Blob 对象。Blob 对象接着被转换成一个 URL,这个 URL 可以直接设置为 <img> 元素的 src 属性。

示例二:使用 XMLHttpRequest 获取 Base64 图像

代码示例

function fetchImageXhr() {
   
  const xhr = new XMLHttpRequest();
  xhr.open('GET', 'https://api.example.com/image', 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DTcode7

客官,赏个铜板吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值