javascript - 当上一页具有不同主机名时限制页面重定向的最佳方法是什么?

标签 javascript angularjs

我正在开发一个 Angular SPA。我遇到过一种情况,我需要限制返回上一页或对其进行操作。

场景1:

URL 1: Landing page
    www.myapp.com/citizen/#/wizard/introduction

URL 2: User goes to login page
    www.myapp.com/citizen/#/wizard/login

URL 3: Login button redirect to third party service
    www.thirdpartylogin.com/login

URL 4: After successful login it redirects to 
    www.myapp.com/citizen/#/wizard/home

当用户现在单击后退按钮时,我不希望用户转到 URL 3。用户应该保留在 URL 4 上,甚至如果我将用户带到 URL 3 或 URL 2 也没关系。

场景 2:

URL 1: Home page
    www.myapp.com/citizen/#/wizard/home

URL 2: User goes to third party payment page
    www.thirdpartypayment.com/payment

URL 3: Finish
    www.myapp.com/citizen/#/wizard/finish

在这种情况下,我不希望用户转到付款页面并停留在 URL 3 本身。

有什么方法可以限制或操作场景 1 和场景 2 的浏览器后退按钮吗?

最佳答案

我会通过从第三方服务登陆后添加一个步骤来做到这一点:

URL 3: Login button redirect to third party service
  www.thirdpartylogin.com/login

URL 3.5: This page redirects you to the next one
  www.myapp.com/citizen/#/wizard/haslogged

URL 4: After successful login it redirects to 
  www.myapp.com/citizen/#/wizard/home

这样,每次您从 url 4 返回时,您都会被重定向到 url 4 本身。如果你想改变行为,你可以使用 history.pushState()在重定向之前在 url 3.5 中。

关于javascript - 当上一页具有不同主机名时限制页面重定向的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35313370/

相关文章:

javascript - AngularJS 设计指南

javascript - Jquery 帮助选择

javascript - 如何使用jQuery检测页面的滚动位置

AngularJS 仅在模糊时更新模型

javascript - Angular.js ng-repeat 内的 ng-repeat

angularjs - 如何将 AngularUI 集成到 AngularJS 中?

javascript - 如何将数据从数据库加载到组合框(自动完成)

javascript - 如何使用 uglifyjs-webpack 将源文件(Javascript)缩小为缩小文件

javascript - FullCalendar 时区不在客户端修改时间

javascript - 当列表长度未知时依次调用http.get