我有一个使用 ngRoute 的 Angular js 应用程序。对应用程序的重定向来自父网站,并且父网站会自动将一些查询参数附加到 URL 中。这会触发 Angular js 应用程序的无限循环。
父网站准备的 url 就像
http://website.com/angularapp/?redirect=bla&code=anotherbla
Angular JS 采用这个 URL 并像下面这样修改它,至少这是我所看到的。
http://website.com/angularapp/?redirect=bla&code=anotherbla#/home
然后页面继续重定向到相同的链接。我认为原因是因为 ngRoute,因为当我创建一个没有 ngRoute 的示例应用程序时,它工作得很好。
这是我的 main.js
var module = angular.module('product', []);
angular.element(document).ready(function($http) {
// There are bootstrapping functions which checks for SSO in keycloak here
});
我的 ngRoute 如下
module.config(function($routeProvider) {
$routeProvider.when('/home', {
templateUrl : 'pages/panels.html',
controller : 'PanelCtrl',
reloadOnSearch: false
}).otherwise({
redirectTo : '/home'
});
我认为问题出otherwise
在 ngRoute 中,它不断重新路由到同一位置。
要解决这个问题
- 我尝试在路由配置中添加 reloadOnSearch: false
- 引导完成后 $route.reload
- $location.path('/home') 改变url的路径
- document.location.href 改变url的路径,JS方式
但他们都没有解决问题。
如何停止此重新加载问题?我可以添加一个过滤器,当在 Angular 应用程序中时,它会从 url 中删除任何类型的查询参数?如果是的话,你能指导我怎么做吗?
谢谢