【问题标题】:Not getting some header values in Angular 4在 Angular 4 中没有获得一些标头值
【发布时间】:2017-05-21 16:47:17
【问题描述】:

我正在使用 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 浏览器时,我看到这些值在那里。可能是什么问题。

【问题讨论】:

  • 你能用ClasszService代码更新帖子吗
  • @Aravind 更新了 ClasszService 代码。我收到了预期的回复。它只是 angular Headers 对象不包含我的变量,因为 chrome 显示了我的变量。
  • 你能用options值更新帖子吗

标签: angular cors angular2-http


【解决方案1】:

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

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

你可以检查这个概念herehere

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-10
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 2021-03-28
    • 2022-01-04
    相关资源
    最近更新 更多