现在重定向只是简单地说
window.location = "/relative_path/";
Run Code Online (Sandbox Code Playgroud)
我想要做的是添加一个查询参数以及此重定向,因此目标页面可以查看它,并且在采取某些操作后,它可以进一步重定向到该页面.
该用途的示例是登录系统.当用户的令牌过期时,他将被重定向到登录页面.在重定向时,我想将确切的URL(包括URL中的查询参数)传递给登录页面,因此在成功登录后,用户可以被重定向回到他/她所在的位置.
我试图将路径作为URL参数传递,但由于转义问题,这不起作用:重定向url使用相同的字符(?,=,...),这会混淆系统,并且参数会被截断.
所以类似的东西,但这显然不起作用:
window.location = "/login?redirect=/original_location?p1=vl1&p2=v2
Run Code Online (Sandbox Code Playgroud)
任何建议表示赞赏.
您可以使用 encodeURIComponent()
encodeURIComponent()方法通过将某些字符的每个实例替换为表示字符的UTF-8编码的一个,两个,三个或四个转义序列来编码统一资源标识符(URI)组件(对于字符只有四个转义序列)由两个"代理"字符组成).
例
window.location = "/login?redirect=" + encodeURIComponent("/original_location?p1=vl1&p2=v2")
Run Code Online (Sandbox Code Playgroud)