我需要调用一个Web服务,在那里我发送一个带有User对象的POST请求,它返回一个LogToken对象。
我无法通过Angular httpClient找到如何执行此操作,因为它似乎期望发送和接收相同的类型。如果我执行以下操作,则会收到错误消息:
public login(user: User): Observable<LoginToken> {
return this._httpClient.post<User>(this._authenticationServiceUrl, user);
}
错误TS2322类型&#39;可观察{用户}&#39;不能分配给类型 &#39;可观察{LoginToken}&#39;
由于我对这项技术很陌生,我想我做错了什么,但我不确定是什么。从POST请求中接收不同的类型是错误的吗?
答案 0 :(得分:3)
传递给post
的类型参数是您不能回来的那个。
public login(user: User): Observable<LoginToken> {
return this._httpClient.post<LoginToken>(this._authenticationServiceUrl, user);
}
答案 1 :(得分:0)
要以角度2制作HTTP请求,请按照以下步骤进行操作
1.从@ angular / http库
导入Http模块import { Http } from '@angular/http';
2.在构造函数中使用Dependancy Injection创建Http实例
constructor(private http : Http) { }
3.拨打http POST并使用Promise处理异步调用
public login(user: User): Promise<LoginToken> {
return this.http.post(this._authenticationServiceUrl, user).toPromise()
.then(**HandleData**)
.catch(**HandleError**);
}