簡體   English   中英

嘗試對已用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:無法在“窗口”上執行“ atob”:要解碼的字符串未正確編碼。

注意:刪除.withoutPadding()得到相同的結果。

我的問題是,如何重做代碼以使錯誤不再出現?

看來問題在於問題是Spring端通過WebSocket / SockJS的STOMP客戶端,而不是編碼數據本身。

盡管數據是通過帶有簽名public String getDataForExcelFile的方法發送的,但通過WebSocket獲得的結果如下:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM