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

How to pass a query parameter along with a redirect in JavaScript

本文关键字:查询 参数 重定向 JavaScript      更新时间:2023-09-26

现在重定向只需说

window.location = "/relative_path/";

我想做的是在重定向的同时添加一个查询参数,这样目标页面就可以查看它,并且在采取一些操作后,它可以进一步重定向到该页面。

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

我试图将路径作为URL参数传递,但由于转义问题,这不起作用:重定向URL使用相同的字符(?,=,…),这会混淆系统,并且参数会被截断。

所以类似的东西,但这显然不起作用:

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

欢迎提出任何建议。我试过encodeURI(),但没用。

您可以使用encodeURIComponent()

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

示例

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