首页 > 解决方案 > 区分 React 应用程序上的客户端重定向与 302 重定向

问题描述

我有一个 React/React-Router 应用程序,它需要知道用户如何登陆页面的上下文。可能有两种不同的情况 (1) 302 重定向 (2) 客户端重定向。

让我添加用例以提供更多详细信息

(1):用户直接点击URL,登陆一个页面

(2):用户点击一个按钮,通过LinkAPI被重定向到另一个页面。

我注意到反应路由器道具包含历史对象,并且在(1)情况下,历史动作是POP在客户端重定向情况下(2)它是PUSHor REPLACE。如果我可以通过检查来尊重历史操作并确定 302 重定向,这是一个很好的假设action === POP吗?

标签: javascriptreactjsurlredirectreact-router

解决方案


为了适合您的特定用例,我们有多种方法可以实现这一目标,让我们回顾一下您提到的一些问题

  • 用户点击按钮:因此,如果我们可以完全控制按钮的功能,我们可以在用户点击它时定义多个参数,例如,我们可以在转发 url 上添加查询参数,在下一页我们知道用户在哪里来自有点像这样,www.example.com/?referrer=oldButton这将表明用户如何访问页面的清晰模式。或者就反应路由器而言,我们可以传递额外的参数以便稍后在另一个组件上访问。
 history.push('/path', yourData);
  • 用户直接点击 URL 并登陆页面:您假设正确,我们可以使用 POP、PUSH、REPLACE 方法来识别用户是如何登陆特定页面的。浏览器使用我们所说的历史记录,它记录之前或之后访问的每个页面,我们可以直接使用它,也可以通过 react-router

希望有帮助:)


推荐阅读