在 Angular 4 中没有得到一些 header 值

Not getting some header values in Angular 4

我正在查询 back-end 就像 angular 4

    this.classzService.query({
      page: this.page,
      size: this.itemsPerPage,
      sort: this.sort(),
      url: url
    }).subscribe(
      (res: Response) => this.onQuerySuccess(res.json(), res.headers),
      (res: Response) => this.onError(res.json())
      );

    private onQuerySuccess(data, headers: Headers) {
       this.links = this.parseLinks.parse(headers.get('Link'));
       this.totalItems = headers.get('X-Total-Count');        
    }

问题是 headers.get('Link') 并且 headers.get('X-Total-Count') 给了我 Null 值。

当我检查我的 chrome 浏览器时,我看到那些值在那里。可能是什么问题。

当来源不同时,这通常发生在 CORS 的情况下。当您在服务器上启用 CORS 时,默认情况下它只公开一些默认值 headers。在您的情况下,您有两个自定义 headers LinkX-Total-Count。因此,在您的服务器上,您需要使用 Access-Control-Expose-Headers 显式公开这些 headers。如果您使用的是 ASP.NET WebApi,那么您可以将其添加到您的 WebApiConfig class:

config.EnableCors(new EnableCorsAttribute("*", "*", "GET, POST, OPTIONS, PUT, DELETE", "Link, X-Total-Count"));

你可以检查这个概念here and here