javascript - 区分 React 应用程序上的客户端重定向与 302 重定向
问题描述
我有一个 React/React-Router 应用程序,它需要知道用户如何登陆页面的上下文。可能有两种不同的情况 (1) 302 重定向 (2) 客户端重定向。
让我添加用例以提供更多详细信息
(1):用户直接点击URL,登陆一个页面
(2):用户点击一个按钮,通过Link
API被重定向到另一个页面。
我注意到反应路由器道具包含历史对象,并且在(1)情况下,历史动作是POP
在客户端重定向情况下(2)它是PUSH
or REPLACE
。如果我可以通过检查来尊重历史操作并确定 302 重定向,这是一个很好的假设action === POP
吗?
解决方案
为了适合您的特定用例,我们有多种方法可以实现这一目标,让我们回顾一下您提到的一些问题
- 用户点击按钮:因此,如果我们可以完全控制按钮的功能,我们可以在用户点击它时定义多个参数,例如,我们可以在转发 url 上添加查询参数,在下一页我们知道用户在哪里来自有点像这样,
www.example.com/?referrer=oldButton
这将表明用户如何访问页面的清晰模式。或者就反应路由器而言,我们可以传递额外的参数以便稍后在另一个组件上访问。
history.push('/path', yourData);
- 用户直接点击 URL 并登陆页面:您假设正确,我们可以使用 POP、PUSH、REPLACE 方法来识别用户是如何登陆特定页面的。浏览器使用我们所说的历史记录,它记录之前或之后访问的每个页面,我们可以直接使用它,也可以通过 react-router
希望有帮助:)
推荐阅读
- python - 如何在python中导入具有相同子文件夹名称的两个子模块
- python - 如何聚合 conda 环境?
- javascript - 找到两个加起来等于给定数字的数组元素的更好方法
- ruby-on-rails - Amazon SES:如何向所有用户发送 HTML 邮件
- dockerfile - 云构建无法找到 DockerFile
- javascript - 每隔一段时间调用方法vue js
- aws-fargate - 使用 AWS CDK 在 Fargate 中启动拉取请求审查应用程序?
- javascript - 从 Chrome 扩展中的内容脚本启动模式
- javascript - 如何返回
在 React + Konva 中拖动后元素回到原始位置 - php - 从数据库中获取变量