我正在使用http post作为我的一个有角度的应用程序进行登录。我已经用postman中的参数检查了URL,这给了我输出。但是当我尝试在应用程序中使用相同的URL时,我得到了错误始终无效登录。 我想知道我传递参数的方式是否正确?
const formData = `username=${username}&password=${password}`;
const options = { headers: new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }) };
return this.http.post<any>(`${this.baseUrl}?action=login&`, formData, options)
.pipe(map(response => {
console.log('user is', response);
if (response && response.session && response.session.id) {
localStorage.setItem('currentUser', JSON.stringify(response));
this.currentUserSubject.next(response);
}
return response;
}));
我遇到的错误是
user is {error: "Incorrect Login."}
答案 0 :(得分:1)
您可以尝试这样,而不是formData
const data = new HttpParams()
.set('username', username)
.set('password', password);
return this.http.post<any>(`${this.baseUrl}?action=login&`, data)
.pipe(map(response => {
if (response.status === 'success') {
localStorage.setItem('currentUser', JSON.stringify(response));
this.currentUserSubject.next(response);
}
return response;
}));