【发布时间】:2019-05-21 11:54:22
【问题描述】:
我在尝试将一些数据从 Java 传递到 JS 时遇到问题。
原始数据的类型为byte[]。
在我使用的 Java 端:
byte[] data = some_data;
return Base64.getEncoder().withoutPadding().encodeToString(data)
在我尝试使用的 JS 方面:
atob(b64Data)
当我这样做时,我遇到了该主题的错误:
DOMException: 无法在 'Window' 上执行 'atob': 字符串 解码未正确编码。
注意:删除 .withoutPadding() 会产生相同的结果。
我的问题是,如何返工代码让错误不再出现?
【问题讨论】:
-
你的问题是什么?
-
你在 JavaScript 中的
b64Data是什么?当你打印/记录它时你看到了什么?你是怎么收到的? -
编码问题?
-
我正在使用 SockJS 通过 WebSocket 上的 STOMP 发送数据。该数据是具有超过 40M 个字符的 excel 文件的二进制文件。我可以尝试查看文件的开头是否显示了某些内容,但我认为这些数据应该从 Java 服务器“按原样”发送。
-
你能不能同时编码简单的字符串?您的代码看起来正确,所以问题可能出在数据中(太长)
标签: javascript java websocket stomp sockjs