當你在 URL 中傳遞參數時,加號 (+
) 會被自動轉換為空格,這是 URL 編碼的標準行為。
問題原因
在 URL 中:
空格會被編碼為?
+
?號當 URL 被解碼時,
+
?號又會被轉換回空格這會導致原始數據中的?
+
?號丟失
解決方案
你需要對參數值進行正確的 URL 編碼:
const params = `adH+NP1zvQ==`;
const encodedParams = encodeURIComponent(params);const { code, data } = await get(`/接口?asd=${encodedParams}`);
說明
encodeURIComponent()
?函數會將特殊字符(包括?+
,?=
,?/
?等)轉換為它們的 URL 編碼形式這樣處理后,
+
?號會被編碼為?%2B
,在傳輸過程中就不會被誤認為是空格后端接收到參數后需要正確解碼
?
?