【发布时间】:2019-05-18 08:12:09
【问题描述】:
当有人注册时,我会将信息发布到我的后端。成功注册用户后,我收到 {success: true, msg: "User registered"} 的 json 响应。我的问题是当我尝试执行 if 语句来检查成功是否设置为 true 时。
这是我的代码不起作用:
// Register User
this.apiService.registerUser(user).subscribe(data => {
if(data.success) {
this.flashMessage.show('Registration successful', { cssClass: 'alert-success', timeout: 3200 });
} else {
this.flashMessage.show('Registration failed', { cssClass: 'alert-danger', timeout: 3200 });
}
});
我能够控制台记录数据的响应,并返回:
{success: true, msg: "User registered"}
这是我的 ApiService 中的代码:
import { Injectable } from '@angular/core';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { User } from '../models/User';
@Injectable({
providedIn: 'root'
})
export class ApiService {
private baseUri: string = 'http://localhost:5000/api';
private headers = new HttpHeaders().set('Content-Type', 'application/json');
constructor(private http: HttpClient) { }
registerUser(user: User) {
return this.http.post(this.baseUri + '/register', user, { headers: this.headers });
}
}
这是我的注册组件中的代码:
onRegisterSubmit() {
const user: User = {
firstName: this.firstName,
lastName: this.lastName,
email: this.email,
username: this.username,
password: this.password
};
// Register User
this.apiService.registerUser(user).subscribe(data => {
console.log(data);
});
}
Screenshot of error from ng serve
我对使用 Angular 还是很陌生,更不用说后端了,所以如果你能解释为什么会发生这个错误,我将不胜感激。
如果您需要更多信息,请告诉我。
【问题讨论】:
-
你能发布实际的错误堆栈吗?它发生在运行时还是编译时?
-
是
success是从POST返回的结果,还是您尝试访问HttpResponse本身的某些内容? -
success是从POST返回的结果。这是控制台错误的截图i.stack.imgur.com/9rCBR.png -
我通过将
res的类型识别为any来解决此问题。所以应该是这样的:this.http.post('http://localhost:3000/api', obj).subscribe((res:any) => { console.log(res.success) }
标签: angular typescript