Странные символы в ответе изображения POST-запроса - PullRequest
0 голосов
/ 19 декабря 2018

Я должен сделать запрос POST к API, и этот API возвращает изображение, которое я хочу показать на холсте или элементе img.Проблема в том, что в ответ приходят странные символы, но на вкладке сети изображение отображается правильно (скриншоты ниже) ImageResponse_weird

Preview_network_tab

Я попробовал все, что упомянуто в AJAX - Странные символы в теге img после ответа на запрос

Я попытался преобразовать в base64, загрузить с помощью new Image(), попыталсяпреобразовать в blob, загрузить, используя FileReader(), но пустое изображение загружено.blank_image

Вместо запроса POST, если я использую статический URL-адрес изображения с new Image() или FileReader(), он работает без проблем.Как отобразить изображение, полученное в ответ на запрос POST?Любая помощь приветствуется.

1 Ответ

0 голосов
/ 21 декабря 2018

Ответ, предоставленный fotinakis in Как разобрать в строку base64 двоичное изображение из ответа? сработало.

При создании самого запроса POST responseType должен быть установлен в arraybuffer, который позже может быть преобразован в base64.Получение base64 из двоичного файла было проблемой.Обратный вызов успеха ajax возвращает двоичный файл по умолчанию, если не указано иное.

Другие responseType s можно найти в https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType.

Я все еще не понимаю одну вещь, хотя.Статический URL-адрес изображения (GET) также возвращает двоичные данные, что не вызывает проблем с new Image(), но если я передаю те же двоичные данные из обратного вызова успешного выполнения запроса POST, он не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...