Угловой полный ответ Http с использованием HttpClient с HttpClient - PullRequest
0 голосов
/ 19 февраля 2019

Я использую много запросов http в Angular 4.

Теперь я обновлюсь до Angular 6 с полным ответом с HttpClient.

Я попытаюсь {observe: 'response'} paramsв HttpInterceptor

мой код, как показано ниже

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);
  }
}

, но он не работает

уверен, что он работает очень хорошо

return this.httpClient.get(url, { observe: 'response' });

iуже нашел мой вопрос очень похожим (ссылка: Есть ли способ ввести наблюдение: "ответ" от HttpInterceptor в Angular 6? )

К сожалению, он, кажется, нашел ответ один,Я спрашиваю вас, действительно ли это невозможно.

1 Ответ

0 голосов
/ 19 февраля 2019

В зависимости от того, что вы пытаетесь сделать;Ранее мне также не удавалось наблюдать ответ, но я был за заголовками и успешно использовал это:

Машинопись

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
})
...