从后端获取图片,为何 Blob 失效?
在尝试从后端检索并显示图片时,您遇到了使用 Blob 的问题。让我们探索导致此问题的可能原因:
- 后端返回数据类型不匹配:从您的后端代码中,您返回的似乎是字节数组(byte[]),但前端尝试将其转换的响应数据类型为 Blob。确保后端返回的数据类型与前端处理的类型匹配。
- 错误的请求头:前端发送请求时,您设置了 responseType 为 “arraybuffer”,但请求头中却指定了 accept 为 “image/jpeg”。尝试删除 accept 标头或将其更改为与服务器返回的图像格式相匹配。
- Response 布局错误:前端中,您似乎将响应数据直接传递给 Blob 构造函数,而没有将其转换为 Blob 的正确布局。尝试将响应数据先转换为 ArrayBuffer,然后再传递给 Blob 构造函数。
- 无效图像数据:前端在处理后端响应数据时,如果转换或处理的图像文件无效,也可能导致 Blob 失败。仔细检查后端服务器返回的图像文件是否完整且有效。
根据您的反馈,您通过将请求地址直接分配给图像元素的 src 属性解决了该问题。这表明图像请求没有通过您的前端服务器代理正确路由。现在图片可以正常显示,但这可能不是一个最佳解决方案。如果可能,尝试解决前端代理问题或使用其他方法从后端获取图片。