如何在JavaScript中传递查询参数和重定向

时间:2015-03-17 06:07:09

标签: javascript

现在简单地通过说

进行重定向
window.location = "/relative_path/";

我想要做的是添加一个查询参数以及此重定向,因此目标页面可以查看它,并且在采取某些操作后,它可以进一步重定向到该页面。

该用途的示例是登录系统。当用户的令牌到期时,他被重定向到登录页面。在重定向时,我想将确切的URL(包括URL中的查询参数)传递给登录页面,因此在成功登录后,用户可以被重定向回到他/她所在的位置。

我尝试将路径作为URL参数传递,但由于转义问题而无法正常工作:重定向网址使用相同的字符(?,=,...),这会混淆系统,以及参数被截断。

这样的事情,但这显然不起作用:

window.location = "/login?redirect=/original_location?p1=vl1&p2=v2

任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:6)

您可以使用encodeURIComponent()

  

encodeURIComponent()方法通过将某些字符的每个实例替换为表示字符的UTF-8编码的一个,两个,三个或四个转义序列来编码统一资源标识符(URI)组件(将只有四个转义符号)由两个“代理”字符组成的字符序列。

实施例

window.location = "/login?redirect=" + encodeURIComponent("/original_location?p1=vl1&p2=v2")
相关问题