代码之家  ›  专栏  ›  技术社区  ›  lifetimeLearner007

post请求的图像响应中的奇怪字符

  •  0
  • lifetimeLearner007  · 技术社区  · 7 年前

    我必须向一个api发出post请求,这个api返回一个我想在画布或img元素上显示的图像。问题是奇怪的字符正在响应,但在网络选项卡中,图像显示正确(下面的屏幕截图) ImageResponse_weird

    Preview_network_tab

    我已经试过了 AJAX - Weird characters in img tag after request response

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

    如果我使用一些静态图像url 新图像() 文件读取器() ,它可以正常工作。如何呈现来自post请求的响应的图像?如有任何帮助,我们将不胜感激。

    1 回复  |  直到 7 年前
        1
  •  0
  •   lifetimeLearner007    7 年前

    答案由 福廷基斯 在里面 How to parse into base64 string the binary image from response? 工作。

    在发出post请求时, responseType 必须设置为 arraybuffer 以后可以转换为 base64 是的。从二进制文件中获取base64是问题所在。除非另有设置,否则默认情况下ajax的成功回调将返回二进制文件。

    其他 响应类型 S可以在 https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType 是的。

    但我还是不明白一件事。静态图像url(get)还返回二进制数据,这与 new Image() 但如果我从post-request-success回调传递相同的二进制数据,它就不起作用。