我有一个物质角度应用程序。第一页是登录页面,成功登录后会被主页取代。在safari的情况下,我看到的是用户名密码在登录后附加到网址。我不指望这种情况会发生,并且在Chrome中它不会发生。
“登录”页面如下所示:
<form (ngSubmit)="doLogin()">
<div><input matInput placeholder=" User ID" name="userId" [(ngModel)]="userId" ></div>
<div><input matInput type="password" name="password" placeholder=" Password" [(ngModel)]="password"></div>
<div><button mat-raised-button (click)="doLogin()">Sign In</button></div>
</form>
login.ts
userId:string
password:string
doLogin(){
this.errorMessage = ''
if(this.userId == undefined || this.userId == ''){
this.errorMessage = 'Authentication Failed'
return
}
var user:UserModel = this.dataStore.findUser(this.userId.trim().toLowerCase())
if(user == undefined || (user.password != this.password)){
this.errorMessage = 'Authentication Failed'
return
}
this.core.currentUser = user.userId
this.router.navigate(['homepage'])
}
app.routing.ts
const appRoutes: Routes = [
{
path: '',
component: LoginPageComponent
},
{
path: 'homepage',
component: DynamicHomeComponent
}
];
export const routing: ModuleWithProviders = RouterModule.forRoot(appRoutes);
登录时,如果是徒步旅行,网址会变为下方: https://myurl/homepage?userid=xxx&password=yyy
答案 0 :(得分:2)
问题是您有<form>
标记,但未正确实施<form>
。如果要使用表单标记,请在提交按钮上使用<button type="submit"></button>
语法。在这里,您有一个具有(click)
方法的按钮,并且您在表单标记上有submit
方法。由于您的按钮没有input
并且有点击事件,因此正在运行默认提交,即带有与表单type="submit"
对应的url参数的get请求。
tl; dr =&gt;使用html表单的约定或只使用click事件,但不能同时使用两者。