http-запрос отсутствует через httpInterceptor angular 8

Я пытаюсь добавить статический заголовок авторизации для нашего внутреннего портала, но некоторые загрузки файлов отсутствуют при добавлении заголовка

ниже код, который я использую

import { Injectable } from '@angular/core';
import {
    HttpRequest,
    HttpHandler,
    HttpEvent,
    HttpInterceptor
} from '@angular/common/http';
import { Observable } from 'rxjs/Observable';

@Injectable()
export class TokenInterceptor implements HttpInterceptor {       
   intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {

   request = request.clone({
     setHeaders: {
     Authorization: `Basic rpzLuipWBVhKgGIyuiicxA$qbegGnPytnn$IZYzn3GrugiKeQMRIm4LsCwVqb0Qs`        
   }
});
   return next.handle(request);
}
}

person Manojkumar    schedule 24.07.2020    source источник
comment
Вы добавили TokenInterceptor в качестве провайдера в свой компонент модуля?   -  person Murilo Góes de Almeida    schedule 24.07.2020
comment
да добавил. Не все http-запросы отсутствуют у перехватчиков. Отсутствуют только загрузки файлов с тегами привязки.   -  person Manojkumar    schedule 24.07.2020
comment
‹a href=/api/download?file class=btn btn-primary pull-right›Загрузить в файл Excel‹/a›   -  person Manojkumar    schedule 24.07.2020
comment
Вы говорите, что заголовок, используемый в перехвате, работает хорошо (авторизация), но некоторые из них не работают, верно?   -  person Murilo Góes de Almeida    schedule 24.07.2020
comment
да. те, которые не работают, вызываются через теги привязки - пример - ‹a href=/api/download?file class=btn btn-primary pull-right›Загрузить в файл Excel‹/a›   -  person Manojkumar    schedule 25.07.2020
comment
в основном это не запросы XHR.   -  person Manojkumar    schedule 25.07.2020


Ответы (1)


В основном httpInterceptor работает только для xhr запросов. Поскольку теги привязки не относятся к этой категории, ниже приведена работа.

openPdf(fileLink, fileName) {
    // Prevent default behavior when clicking a link
    // $event.preventDefault();
    // Get filename from href
    //var filename = fileLink;
    this.http.get(fileLink, { responseType: 'arraybuffer' }).subscribe(function (data) {
      const file = new Blob([data], { type: 'application/pdf' });
      const fileURL = URL.createObjectURL(file);
      const element = document.createElement('a');

      element.setAttribute('href', fileURL);
      element.setAttribute('download', fileName);
      element.style.display = 'none';
      document.body.appendChild(element);
      element.click();
      document.body.removeChild(element)
    });   }
person Manojkumar    schedule 28.07.2020