jquery - POST 请求的图像响应中的奇怪字符

标签 jquery ajax image html5-canvas

我必须向 API 发出 POST 请求,此 API 返回我想在 Canvas 或 img 元素上显示的图像。问题是响应中出现了奇怪的字符,但在网络选项卡中,图像显示正确(下面的屏幕截图) ImageResponse_weird

Preview_network_tab

我已经尝试了 AJAX - Weird characters in img tag after request response 中提到的所有内容

我尝试转换为 base64,使用 new Image() 加载,尝试转换为 blob,使用 FileReader() 加载>,但加载了空白图像。 blank_image

如果我使用带有 new Image()FileReader() 的一些静态图像 URL 而不是 POST 请求,它可以正常工作。如何呈现作为 POST 请求响应的图像?感谢您的帮助。

最佳答案

fotinakisHow to parse into base64 string the binary image from response? 中提供的答案成功了。

在自己发出 POST 请求时,responseType 必须设置为 arraybuffer,稍后可以将其转换为 base64。从二进制中获取 base64 是问题所在。 ajax成功回调默认返回binary,除非另外设置。

其他responseType可以在https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType中找到.

虽然我还是不明白一件事。静态图像 URL(GET) 也返回二进制数据,这对 new Image() 没有任何问题,但如果我从 POST 请求成功回调传递相同的二进制数据,它就不起作用。

关于jquery - POST 请求的图像响应中的奇怪字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53857416/

相关文章:

javascript - 我想使用 Jquery 向我的 html 元素添加更多 css 属性,这意味着我不想删除前一个属性,只需添加更多属性即可

javascript - ajax发送二维数组到操作方法错误 - asp.net mvc

c# - WPF 按钮中的图像在运行时不可见

javascript - 使用 webdriverio 和 javascript 测试选择复选框

javascript - 为什么只附加一个 div?

php - 在实时 ajax 搜索中搜索时出现 fatal error

python - 将gif图像转换为png图像的正确方法

java - 磁盘上的图像文件大小?

javascript - 3d flip + slick.js 在第一次旋转后自动翻转

javascript - jQuery:抓取元素并仅应用于其容器