vue history路径编码

记录今天遇到的一个问题:

问题现状

有一个需要前端伪造302进行重定向的需求,我们需要将这样的一个路径:http://xxx.com/system-name/#/index,拼接在跳转地址的后面,进行重定向。拼接的方式是这样的:

http://redirect_system_host.com?redirect_url=${url},这个url就是我们上面所列举的地址,是一个history模式的路由地址。

排查

在发送请求的过程中,我们很确定传输的地址没有错,但是对方系统收到地址里面就是没有路由后面的/#/index,导致重定向过程错误。

刚开始以为是对方系统中的设置,确认是传输错误以后,我们提问了ChatGPT,它给出这样的答案:

vue history路径编码_第1张图片

提示我们应该对路径进行编码encodeURIComponent,当我们尝试了之后,结果确实对了。所以,确实是因为路径没有编码导致的。

解决和结论

所以,得出结论,当在传输一些路径的地址的时候,尤其是路径里有特殊字符,最好都使用encodeURIComponent进行编码,避免因传输过程中丢失、解析方式不一致等导致出现错误。

你可能感兴趣的:(前端进阶,vue.js,前端,javascript)