关于 URL 中 “+“ 号变成空格的问题
当你在 URL 中传递参数时,加号 (+
) 会被自动转换为空格,这是 URL 编码的标准行为。
问题原因
在 URL 中:
空格会被编码为
+
号当 URL 被解码时,
+
号又会被转换回空格这会导致原始数据中的
+
号丢失
解决方案
你需要对参数值进行正确的 URL 编码:
const params = `adH+NP1zvQ==`;
const encodedParams = encodeURIComponent(params);const { code, data } = await get(`/接口?asd=${encodedParams}`);
说明
encodeURIComponent()
函数会将特殊字符(包括+
,=
,/
等)转换为它们的 URL 编码形式这样处理后,
+
号会被编码为%2B
,在传输过程中就不会被误认为是空格后端接收到参数后需要正确解码