Angular 6:返回HttpHeaders

时间:2018-05-13 10:05:14

标签: angular typescript angular-cli

我目前正在构建一个用于学习目的的小型Angular应用程序。我正在调用.net核心WebApi来获取/操作数据。

现在,我的问题是:

在所有Post和Put请求中,我使用完全相同的标题:

const headers = new HttpHeaders().set('content-type', 'application/json');

我这样追加(例如在帖子中):

return this.http.post<SmartCard>(AppDefinitions.ApiSmartCardAdminPath, body, { headers })

由于post和put都有相同的标题,我想把它添加到我的AppDefinitions类中,看起来像这样:

import { HttpHeaders } from "@angular/common/http";

export class AppDefinitions {
    public static ApiBasePath: string = "http://<my webapp name>.azurewebsites.net/api/";
    public static ApiLoginPath: string = AppDefinitions.ApiBasePath + "Login/";
    public static ApiSmartCardAdminPath: string = AppDefinitions.ApiBasePath + "SmartCard/";
    public static JsonHttpHeaders: HttpHeaders = new HttpHeaders().set('content-type', 'application/json');
}

然后我继续删除post和put方法中的ehader定义,然后用JsonHttpHeaders调用替换它,然后看起来像这样:

return this.http.post<SmartCard>(AppDefinitions.ApiSmartCardAdminPath, body, { this.GetHttpHeaders() })

但这只会导致错误,其中指出:

Argument of type '{ this: any; }' is not assignable to parameter of type '{ headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: "body"; params?: Ht...'.
  Object literal may only specify known properties, and 'this' does not exist in type '{ headers?: HttpHeaders | { [header: string]: string | string[]; }; observe?: "body"; params?: Ht...'.

现在,我不确定我是否理解这一点,但是这是否意味着我的AppDefinitions正在返回?我怎么能改变呢?我还尝试在服务类本身中创建以下方法:

  GetHttpHeaders() : HttpHeaders{
    const headers = new HttpHeaders().set('content-type', 'application/json');
    return headers;
  }

但是这会导致同样的错误。

我在做什么(和理解)错了?

1 个答案:

答案 0 :(得分:1)

设置标题属性。

df1.isnull().sum()