首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Angular Http full response using HttpClient with HttpClient

Angular Http full response using HttpClient with HttpClient
EN

Stack Overflow用户
提问于 2019-02-19 19:53:29
回答 1查看 312关注 0票数 0

我在Angular 4中使用了很多http请求。

现在,我将升级到Angular 6,并使用HttpClient进行完全响应。

我将尝试在HttpInterceptor中执行{observe: 'response'}参数

我的代码如下

代码语言:javascript
复制
import { Injectable } from '@angular/core';
import {
  HttpRequest,
  HttpHandler,
  HttpEvent,
  HttpInterceptor
} from '@angular/common/http';
import { AuthService } from './auth/auth.service';
import { Observable } from 'rxjs/Observable';
@Injectable()
export class TokenInterceptor implements HttpInterceptor {
  constructor(public auth: AuthService) {}
  intercept(request: HttpRequest<any>, next: HttpHandler): 
  Observable<HttpEvent<any>> {

    request = request.clone({
      setParams: { observe: 'response' },
      setHeaders: {
        Authorization: `Bearer ${this.auth.getToken()}`
      }
    });
    return next.handle(request);
  }
}

但是它不起作用。

当然,它工作得很好。

代码语言:javascript
复制
return this.httpClient.get(url, { observe: 'response' });

我已经发现我的问题非常相似(链接:Is there a way to inject observe: 'response' from HttpInterceptor in Angular 6? )

可悲的是,他似乎独自找到了答案。我问你这是不是真的不可能。

EN

回答 1

Stack Overflow用户

发布于 2019-02-19 20:08:15

这取决于你想要做什么;我之前也没有观察到响应,但我关注的是标题,并成功地使用了以下内容:

打字脚本

代码语言:javascript
复制
const httpOptions = {
        observe:'response',
    };
this.httpClient.post(url, data, httpOptions) // this errors on typeerror (so comment out the 'observe')
.subscribe(resp => {
  console.log('resp',(resp as any).headers.get('Location')) // we still actually have access to it
})
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54765733

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档