为什么HttpHeaders会在POST请求中发送Bareer令牌?

时间:2018-06-13 10:33:18

标签: angular typescript ionic-framework

我在我的服务中使用它:

import {HttpClient, HttpHeaders} from '@angular/common/http';

我正试图用这个做一个帖子:

 public sendInvitation(id):Observable<any>{
    let url = URL_SERVICIOS + '/users/contacts?id=' + id;
    let headers = new HttpHeaders();
    headers.append('Authorization', 'Bearer ' + this.getToken());
    return  this.http
      .post(url , headers)
      .map(res => {
        return res['result'];
      })
      .catch(this.handleError)
  }

但是当我调试时,我看: 1.POP请求200 OK

enter image description here

  1. 发布401,因为忘记了发送
  2. enter image description here

    我试图改变:

    .appened .set,但这还不起作用

    也许我失去了什么?

    这很奇怪,因为当我做GET时,它确实运作良好

      public listContacts(type):Observable<Invitation[]>{
        let url = URL_SERVICIOS + '/users/contacts?type=' + type;
        let headers = new HttpHeaders().set('Authorization','Bearer ' +this.getToken());
        return  this.http
          .get(url , {headers})
          .map(res => {
            return res['result'];
          })
          .catch(this.handleError)
      }
    

    提前谢谢

2 个答案:

答案 0 :(得分:2)

您在Post方法中使用的参数存在冲突。

您使用Post方法如下:

  .post(url , headers)

但实际参数是

 .post(url, body, headers)

您需要指定正文,以便按照预期传递标题。

答案 1 :(得分:0)

它应该修复错误:

public sendInvitation(id):Observable<any>{
  let url = URL_SERVICIOS + '/users/contacts?id=' + id;
  let headers = new HttpHeaders();
  headers.set('Authorization', 'Bearer ' + this.getToken());
  return  this.http
    .post(url , {}, {headers: headers})
    .map(res => {
      return res['result'];
    })
    .catch(this.handleError);
}