我正在尝试从POST请求获得完整的响应。我已经阅读了如何获得对angular官方站点上提到的get请求的完整响应。
Angular http

它说的是添加{ observe: 'response' }。但这适用于get请求,而不适用于post请求。 post请求接受2-3个参数,因此我无法将其作为第4个参数发送。请查看我的代码,并让我知道我做错了什么。

    const httpOptions = {
        headers: new HttpHeaders({
          'Content-Type':  'application/json'
        })
    };

    return this.http.post('http://localhost:3000/api/Users/login', data, httpOptions, { observe: 'response' })
        .do( function(resp) {
            self.setSession(resp);
        });

这给我一个错误,因为不允许使用4个参数。

编辑

公认的答案似乎现在不起作用。我得到以下
error:
error TS2345: Argument of type '{ headers: HttpHeaders; observe: string; }' is not assignable to parameter of type '{ headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: "body"; params?: Ht...'.
  Types of property 'observe' are incompatible.
    Type 'string' is not assignable to type '"body"'.

最佳答案

observe应该作为属性作为httpOptions的一部分。

const httpOptions = {
    headers: new HttpHeaders({
      'Content-Type':  'application/json'
    }),
    observe: 'response'
};

 return this.http.post('http://localhost:3000/api/Users/login', data, httpOptions)
   .do( function(resp) {
        self.setSession(resp);
 });

关于angular - 在Angular http Post请求中获得完整响应,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50989865/

10-10 20:04