Ошибка «Неправильно закодированная строка» при попытке декодировать Base64 в JS, который был закодирован в Java - PullRequest
1 голос
/ 21 мая 2019

У меня проблема при попытке передать некоторые данные из Java в JS.Исходные данные имеют тип byte[].

На стороне Java я использую:

byte[] data = some_data;
return Base64.getEncoder().withoutPadding().encodeToString(data)

На стороне JS я пытаюсь использовать:

atob(b64Data)

В то время как я делаю это, я испытываю ошибку из темы:

DOMException: Не удалось выполнить 'atob' в 'Window': строка, которая будетдекодировано неправильно закодировано.

Примечание: удаление .withoutPadding() дает тот же результат.

Мой вопрос: как переработать код, чтобы ошибка больше не появлялась?

1 Ответ

0 голосов
/ 22 мая 2019

Похоже, что рассматриваемая проблема была с клиентом STOMP через WebSocket / SockJS на стороне Spring, а не с самими закодированными данными.

Хотя данные отправляются методом с подписью public String getDataForExcelFile, полученный ответ через WebSocket выглядит так:

FrameImpl {command, headers, ack, binaryBody, body, (...) }, поэтому вместо atob(b64Data) мне нужно было использовать atob(b64Data.body).

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