使用 angularjs 重定向到相同的 URL 无查询参数

Redirect to the same URL sans query parameters using angularjs

我按如下方式加载密码重置应用程序 URL:

http://localhost/myapp/#/login?resetcode=944F1WO71BU32

重置成功后,我想重定向到同一页面上的登录组件,但是URL应该是: http://localhost/myapp/#/login

我尝试使用 $window.location.reload();$location.path('/my/path').search({});,但没有用。它仍然显示带有查询字符串的 url。

  vm.resetpassword = function () {
        $scope.errorMessage = '';
        var changePasswordModel = new SetPasswordModel();
        changePasswordModel.resetcode = $route.current.params.resetcode;
        changePasswordModel.newpassword = vm.password;
        changePasswordModel.confirmpassword = vm.retypepassword;
        if (vm.password.length >= 8 && common.isPasswordValid(vm.password)) 
        {
            security.resetPassword(changePasswordModel)
                .then(function () {
                    $scope.message = "Updating Password...";
                    $timeout(function () {
                        $location.search({});
                    }, 3000);
                }, function (err) {
                    $scope.errorMessage = err.ModelState.Error[0];
                });
        } else {
            $scope.showPasswordPolicy = true;
        }
    };

解决方案:

    var url = $location.search({});
    window.location.href = url.absUrl();

要删除 URL 参数,请使用

$location.url($location.path());

或者您可以简单地使用它来删除所有参数

$location.search({});

试试这个

window.location.href="your path";