【发布时间】:2019-05-20 07:27:09
【问题描述】:
我必须向 API 发出 POST 请求,这个 API 返回一个我想在画布或 img 元素上显示的图像。问题是奇怪的字符正在响应,但在网络选项卡中,图像显示正确(下面的屏幕截图)
我已经尝试了AJAX - Weird characters in img tag after request response 中提到的所有内容
我尝试转换为base64,使用new Image() 加载,尝试转换为blob,使用FileReader() 加载,但加载了空白图像。
如果我使用带有new Image() 或FileReader() 的静态图像URL 而不是POST 请求,它可以正常工作。如何渲染来自 POST 请求的响应的图像?任何帮助表示赞赏。
【问题讨论】:
-
建议将图像保存在某处,然后像使用静态 url 一样在 http 响应中简单地发送指向该图像的链接。如果没有其他选项,请尝试对源图像进行 base64 编码并发送 base64 编码图像,您应该能够在客户端进行解码。
-
您获取的响应类型是什么?我猜这可能是因为字符编码。
-
@Quinten,静态 url 不是一个选项,api 根据有效负载生成图像。如果 api 响应本身是 base64,它可以被渲染是你的建议吗? @Manjunath,响应是图像,
Content-Type: image/jpeg在响应标头中。知道这些奇怪的字符代表什么类型的格式吗? -
如果 api 响应是 base64 编码的,您可以对其进行解码、保存并执行任何您喜欢的操作,或者您可以将其直接放入 img 的 src 标签中,因为它会自动解码(如果这是您的目标)
-
我遇到了同样的问题并在这里解决了:stackoverflow.com/questions/70534780/…
标签: jquery ajax image html5-canvas