尝试对已用Java编码的JS中的Base64进行解码时,出现“要解码的字符串未正确编码”错误

时间:2019-05-21 11:54:22

标签: javascript java websocket stomp sockjs

尝试将某些数据从Java传递到JS时遇到问题。 原始数据的类型为byte[]

在Java方面,我正在使用:

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

在JS端,我尝试使用:

atob(b64Data)

当我这样做时,我遇到了以下主题的错误:

  

DOMException:无法在“ Window”上执行“ atob”:字符串为   解码未正确编码。

注意:删除.withoutPadding()会得到相同的结果。

我的问题是,如何重新编写代码以使错误不再出现?

1 个答案:

答案 0 :(得分:0)

看来问题在于问题是Spring端通过WebSocket / SockJS的STOMP客户端,而不是编码数据本身。

尽管数据是从带有签名的方法发送的  public String getDataForExcelFile 通过WebSocket得到的答案如下:

FrameImpl {command, headers, ack, binaryBody, body, (...) }而不是 atob(b64Data)我需要使用atob(b64Data.body)