如何在 ng2-completer 中添加 HTTP 请求 header

How to add HTTP request header in ng2-completer

为了解决我遇到的这个 header 问题,我已经苦苦挣扎了两天。我可以毫无问题地在 Postman 中调用 ng2-completer API。

我需要在请求中传递令牌 header 以进行身份​​验证。它在 Postman 中运行良好,但是我在我的 TypeScript 中尝试过,它根本不起作用。

 this.dataService = completerService.remote("https://arsapi.azurewebsites.net/api/searchusers?searchstring=", 'userName', 'userName');
   let options = new RequestOptions({ headers: new Headers() });
   options.headers.set('Content-Type', 'application/json');
   options.headers.set("Authorization", 'Bearer JeBVR3A');
   this.dataService.requestOptions(options);

上面的 TypeScript 请求没有发送 header。

为什么我的请求 header 没有包含在请求中?

如有任何帮助,我们将不胜感激。

我认为正在发生的事情是您将 headers 添加到代码中的请求 实际发出请求之后,这就是为什么您不在请求中看到它们。

您需要在 completerService.remote() 函数中添加这些行,因为这是发出实际 HTTP 请求的地方。

let options = new RequestOptions({ headers: new Headers() });
options.headers.set('Content-Type', 'application/json');
options.headers.set("Authorization", 'Bearer JeBVR3A');
this.dataService.requestOptions(options);

我不知道你的 completerService.remote() 函数是什么样的,但是无论哪行代码在执行 HTTP GET,你都需要把上面几行放在这之前,然后传递 options 变量。

我在我的组件中做了这个并且有效:

constructor(
    private completerService: CompleterService,
    private authenticationService: AuthenticationService
  ) {
    this.dataService = completerService.remote(`${environment.baseUrl}/cep/autocomplete?term=`, 'label', 'label');
    let options = new RequestOptions({headers: new Headers()});
    options.headers.set('Authorization', authenticationService.getToken());
    options.headers.set('Content-Type', 'application/json');
    this.dataService.requestOptions(options);
  }