在 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 Link
和 X-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"));
我正在查询 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 Link
和 X-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"));