在 JS/Vue.js 3 中显示来自 API 的图像

Display image from API in JS/Vue.js 3

我正在尝试显示通过 API 返回的图像,但没有成功。

在Postman中正常显示:

但是当我对返回的数据执行 console.log 时,会显示以下内容:

如何将其转换为 src 的有效字符串?

谢谢!

很可能在您的抓取中您正在尝试解析 json,而您应该解析为 blob。

fetch(url, options)
.then(res => res.blob())
.then(res => //do your thing here)
.catch(error => console.log(error))

由于我使用的是 Axios,因此有必要将 responseType 更改为 "blob":

try {
    const response = await api.post(
      url,
      {
        params
      },
      {
        responseType: "blob"
      }
    );

    return URL.createObjectURL(
      new Blob([response.data], { type: "image/png" })
    );
} catch (error) {
    console.error(error);
}

所以您所要做的就是在图像的 src 属性中包含 return。