尝试将某些数据从Java传递到JS时遇到问题。
原始数据的类型为byte[]
。
在Java方面,我正在使用:
byte[] data = some_data;
return Base64.getEncoder().withoutPadding().encodeToString(data)
在JS端,我尝试使用:
atob(b64Data)
当我这样做时,我遇到了以下主题的错误:
DOMException:无法在“ Window”上执行“ atob”:字符串为 解码未正确编码。
注意:删除.withoutPadding()
会得到相同的结果。
我的问题是,如何重新编写代码以使错误不再出现?
答案 0 :(得分:0)
看来问题在于问题是Spring端通过WebSocket / SockJS的STOMP客户端,而不是编码数据本身。
尽管数据是从带有签名的方法发送的
public String getDataForExcelFile
通过WebSocket得到的答案如下:
FrameImpl {command, headers, ack, binaryBody, body, (...) }
而不是
atob(b64Data)
我需要使用atob(b64Data.body)
。