有没有办法拦截FetchBackend的Fetch请求以添加授权头?

我曾try 使用HttpInterceptor拦截这些FETCH请求,但似乎不起作用,因为FetchBackend没有使用HttpClient接口

推荐答案

如果你使用FetchBackend,你的提供者中可能有provideHttp(withFetch())个.

您应该直接使用FetchBackend,而不是HttpClient(当您通过withFetch()启用它时,它将依赖于FetchBackend.

constructor(httpClient: HttpClient) {
  const url = 'http://localhost:8080/sse';
  let sseRequest: HttpRequest<any> = new HttpRequest('GET', url, {
    responseType: 'arraybuffer',
  });
  httpClient.request(sseRequest)
}

如果要设置拦截器

export const authenticationInterceptor: HttpInterceptorFn = (req: HttpRequest<unknown>, next:
  HttpHandlerFn) => {
     const userToken = 'MY_TOKEN'; const modifiedReq = req.clone({
       headers: req.headers.set('Authorization', `Bearer ${userToken}`),
     });
 
     return next(modifiedReq);
};

它可以用作provideHttpClient(withFetch(), withInterceptors([authenticationInterceptor]))

Angular相关问答推荐

根据Angular中的构建来卸载独立组件

如何在Angular应用程序部署中安全地管理环境变量

to Signal on Observables inside Signal

如何在自定义验证器中获取所有表单控件(字段组动态创建)

垫-菜单未以17.2.3角显示

如何动态呈现组件并以Angular 访问它们的方法?

Angular router-outlet 未渲染

代码优化以删除Angular中的嵌套订阅

无法在单个元素上多次监听同一个事件

如何正确导出/导入枚举和接口文件以便 Jest 成功完成测试?

检测父元素是否绑定到 Angular 中的子元素 @Output

Angular 从 13.3.8 恢复到 13.3.7

多个 Mat Paginator 在 Angular 组件中不起作用

我应该在 Jasmine 3 中使用什么来代替 fit 和 fdescribe?

如何在 Angular 5 HttpInterceptor 中添加多个标头

找不到模块'@angular/compiler'

在 RxJS Observable 中 flatten数组的最佳方法

angular2中的httpinterceptor类似功能是什么?

Angular 4 错误:没有 HttpClient 的provider提供者

Hot and Cold observables:有 hot和 cold运算符吗?