axios的get请求传参数据中若带有[] 等符号,导致转译失败问题
今天遇到一个问题,在调用上传过程中,上传了一个带类似的“[xxxxx](xxxxxxxxx).PDF”比较长的文件名,服务端报数据超长错误。从前端查到后端又从查到前端,发现问题出现在axios上。如果将参数放在params中,axios会将转译后的特殊符号比如[]()再转回来,导致服务端拿到不是合法的转译数据,又进行了转译,导致字段超长。
·
今天遇到一个问题,在调用上传过程中,上传了一个带类似的“[xxxxx](xxxxxxxxx).PDF”比较长的文件名,服务端报数据超长错误。从前端查到后端又从查到前端,发现问题出现在axios上。
如果将参数放在params中,axios会将转译后的特殊符号比如[]再转回来,导致服务端拿到不是合法的转译数据,又进行了转译,导致字段超长。
axios源码中处理的代码:

解决方案:get请求中将参数拼在url上,例如:
axios.get(`${url}?fileName=${encodeURIComponent(file.name)}`)
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐
所有评论(0)