Angular 我可以将HttpClient设置为始终以角度读取完整响应吗?

Angular 我可以将HttpClient设置为始终以角度读取完整响应吗?,angular,angular5,Angular,Angular5,所以我读到了,我要读完整的响应,包括标题 我必须这样做 this.client<MyType>.get('someurl', { observe: 'response' }).subscribe(val=>doit); this.client.get('someurl',{observe:'response'}).subscribe(val=>doit); 有没有一种方法可以在不向每个请求添加选项的情况下进行全局设置 如果我设置{observe:'response'}则

所以我读到了,我要读完整的响应,包括标题 我必须这样做

  this.client<MyType>.get('someurl', { observe: 'response' }).subscribe(val=>doit);
this.client.get('someurl',{observe:'response'}).subscribe(val=>doit);
  • 有没有一种方法可以在不向每个请求添加选项的情况下进行全局设置
  • 如果我设置
    {observe:'response'}
    val
    是否仍然是
    MyType
    还是
    HttpResponse
  • 如果出现
    HttpErrorResponse
  • 选项3对我来说是最好的,因为我需要在拦截器中读取包含错误原因的响应头,但只有在错误响应的情况下。我不必阅读200条回复中的标题

  • 如果将
    observe:'response
    放入
    HttpInterceptor

    request.clone({setParams:{observe:'response'},…})

  • 您的响应类型为
    HttpResponse

  • 您可以尝试始终观察响应,但在拦截器中,您将结果映射到响应主体,以便服务中的原始调用方只获取它所需的数据。如果出现错误,请读取响应标题并相应地返回数据


  • 1) 看起来很有希望。我明天要试一试。我希望它能解决使用res.json()所需的问题,就像旧的http???@MuhammedAlbarmawi No一样,使用新的
    HttpClient
    ,响应数据会自动转换为json,除非您使用
    responseType
    param@David如何重新映射到原始
    观察
    目标?如果调用方使用了
    {observer:respones}
    我似乎无法从另一个
    请求
    对象获取该信息/