我正在开发angular6应用程序,并使用域石灰“ www.mydomain.com/”进行部署。
[所有路由都可以正常工作,例如“ www.mydomain.com/dashboard"、"www.mydomain.com/products”等,
问题是,我们有一个更改密码来链接它,就像“ www.mydomain.com/mga/sps/authsvcurn:ibm:security:authentication/changePassword”。 (该链接会将OTP邮件发送到我们的邮件ID,该邮件ID用于登录该应用程序并等待更新OTP)
我使用链接重定向更改密码。但是由于路由相同的域,它不会重定向到主页“ www.mydomain.com /”。
问题是唯一的仅首次使用Chrome浏览器。当我第一次登录时,单击“更改密码”按钮,链接被触发,但几秒钟后重定向到主页。
第二次,如果我单击相同的按钮,链接将重定向到正确的页面(更改密码URL页面)。
如何解决此问题?请帮帮我。
这里是代码:
<a (click)="changePassword()">Change Password</a>
changePassword() {
window.location.href = 'www.mydomain.com/mga/sps/authsvcurn:ibm:security:authentication/changePassword';
}
您可以将changePassword()
方法更改为:
<a (click)="changePassword($event)">Change Password</a>
changePassword(event) {
window.location.href = 'www.mydomain.com/mga/sps/authsvcurn:ibm:security:authentication/changePassword';
event.preventDefault();
}
或者您可以使用window.open
:
// _blank is optional, it opens the url in a new window.
// You can omit if you want to navigate from the current window.
window.open("https://google.com/","_blank");
更新
其他有助于调试的要点:
1-启用路由跟踪(在app-routing.module.ts中:):
imports: [
RouterModule.forRoot(
routes,
{ enableTracing: true } // <-- for debugging purposes only
)
]
2-如果无法使用Stackblitz解决方案,您能否在触发重定向时提供所有涉及的路由以及所有涉及的相关参数?