使用Angular中的httpclient.post发送和接收不同的类型

问题描述 投票:1回答:2

我需要调用一个Web服务,我发送一个带有User对象的POST请求,它返回一个LogToken对象。

我无法找到如何使用Angular httpClient,因为它似乎期望发送和接收相同的类型。如果我执行以下操作,则会收到错误消息:

  public login(user: User): Observable<LoginToken> {
    return this._httpClient.post<User>(this._authenticationServiceUrl, user);
  }

错误TS2322类型'Observable {User}'不能分配给'Observable {LoginToken}'类型。

由于我对这项技术很陌生,我想我做错了什么,但我不确定是什么。从POST请求中接收不同的类型是错误的吗?

angular typescript post angular-httpclient
2个回答
3
投票

传递给post的类型参数是你除了要回来的那个。那样做

public login(user: User): Observable<LoginToken> {
    return this._httpClient.post<LoginToken>(this._authenticationServiceUrl, user);
}

0
投票

要以角度2制作HTTP请求,请按照以下步骤操作

1.从@ angular / http库导入Http模块

import { Http } from '@angular/http';

2.在构造函数中使用依赖注入创建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**);
}
© www.soinside.com 2019 - 2024. All rights reserved.