Вот authservice логин, взятая from here:Угловое 2 http.post отправки пустого объекта
login(email: string, password: string): Observable<boolean> {
return this.http.post(
apiURL + '/admin/login',
JSON.stringify({ email: email, password: password }))
.map((response: Response) => {
// login successful if there's a jwt token in the response
let token = response.json() && response.json().token;
if (token) {
// set token property
this.token = token;
// store username and jwt token in local storage to keep user logged in between page refreshes
localStorage.setItem('currentUser', JSON.stringify({ email: email, token: token }));
// return true to indicate successful login
return true;
} else {
// return false to indicate failed login
return false;
}
});
}
В моем компоненте я пытаюсь подписаться так:
login() {
this.loading = true;
console.log(this.model);
this.authenticationService.login(this.model.email, this.model.password)
.subscribe(result => {
if(result === true) {
this.router.navigate(['/']);
} else {
this.error = 'Username or password is incorrect';
this.loading = false;
}
});
}
Я сделал консольные журналы вдоль линии, чтобы определить, действительно ли данные передаются, и да. Все хорошо проверяется.
Кроме, передаваемые данные просто { }
По моей экспресс-консоли, это единственное, что приходит через req.body
. req.headers
указывает, что типы содержимого являются правильными, а именно: Content-Type: application/json
Я попытался отправить тот же самый запрос json в конечную точку API, используя POSTMan. Работает отлично.
Есть ли еще трюк Angular 2's http.post
Втулка?
Что не так с кодом, указанным выше?
Ok, это данные, прошло или нет? Здесь немного противоречия. С одной стороны, вы говорите, что данные передаются, с другой стороны, вы говорите, что данные просто: '{}' :) – Alex
@ AJT_82 жаль путаницы. Я имею в виду, что пустой объект '{}' - это единственное, что отправляет http.post. – Rexford
Что такое 'this.model'? –