"The string to be decoded is not correctly encoded " 尝试解码已在 Java 中编码的 JS 中的 Base64 时出错

"The string to be decoded is not correctly encoded " error when trying to decode Base64 in JS which has been encoded in Java

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

在 Java 方面,我正在使用:

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

在 JS 方面,我正在尝试使用:

atob(b64Data)

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

DOMException: Failed to execute 'atob' on 'Window': The string to be decoded is not correctly encoded.

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

我的问题是,如何修改代码使错误不再出现?

问题似乎出在 Spring 端 WebSocket/SockJS 上的 STOMP 客户端,而不是编码数据本身。

虽然数据是从带有签名的方法发送的 public String getDataForExcelFile 通过 WebSocket 得到的结果答案如下所示:

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