Szenario Handling:Runtime Error nach 400
Der Benutzername und das Passwort authentifiziert wird WebAPI 2 Token-Authentifizierung. Wenn die Anmeldeinformationen korrekt sind, wird das Token zurückgegeben. Wenn die Anmeldeinformationen jedoch falsch sind, wird 400 ungültige Anforderung zurückgegeben. Wenn ich die Antwort in meinem Ionic 2-Projekt erhalte, navigiere ich zur nächsten Seite. Wenn ich den Fehler erhalte, zeige ich meine benutzerdefinierte Fehlermeldung.
Ausgabe:
Das Problem, das ich bin Bewurf ist, wenn ich die falschen Anmeldeinformationen zum ersten Mal eingeben, die benutzerdefinierte Fehlermeldung angezeigt. Wenn ich die falschen Anmeldeinformationen erneut eingabe, wird die benutzerdefinierte Fehlermeldung zusammen mit der ionischen Fehlermeldung angezeigt.
Hier ist mein Code:
login.ts
doLogin() {
if (this.Username !== undefined && this.Password !== undefined) {
this.loading.present();
this.authSrv.login(this.Username, this.Password).subscribe(data => {
this.navCtrl.setRoot('HomePage');
this.loading.dismiss();
}, (err) => {
this.errorMsg("Invalid Username/Password !" + err);
this.loading.dismiss();
});
}
else
this.errorMsg("Please enter Username/Password");
}
Auth-service.ts
login(username, password) {
let headers = new Headers();
headers.append('Content-Type', 'application/x-www-form-urlencoded');
let urlSearchParams = new URLSearchParams();
urlSearchParams.append('username', username);
urlSearchParams.append('password', password);
urlSearchParams.append('grant_type', 'password');
let body = urlSearchParams.toString()
return this.http.post('http://' + this._api + '/postoken', body, { headers: headers }
)
.map(res => res.json())
.map((res) => {
if (res !== null) {
localStorage.setItem('acess_token', res["access_token"]);
localStorage.setItem('access_type', res["access_type"]);
localStorage.setItem('expires_in', res["expires_in"]);
this.loggedIn = true;
}
return res;
});
}
Screen:
Fehler
Jede Beratung wäre hilfreich.
Dank @suraj, das löste mein Problem. –
froh, dass es gelöst ist :) –
Hey @suraj, woher wusstest du, dass das Problem in 'Loading' aus dem angegebenen Code in der Frage war? Ich verstehe es einfach nicht. Weil er das Laden dort nicht erstellt hat und mehrere Logins auf derselben Seite gemacht hat? Ist es das? –