aurelia-fetch-client 即时创建请求 headers

aurelia-fetch-client create request headers on the fly

我正在使用 aurelia-fetch-client 将一些数据发送到 web-api(在寄存器方法中)。

headers: Headers;

register() {

    this.headers = new Headers();

    this.headers.append("content-type", "application/json; charset=utf-8");

    this.httpClient.fetch("api/Account/Register", {
        method: "POST",
        body: JSON.stringify({
            email: this.email,
            password: this.password
        }),

        headers: this.headers
    })
}

如您所见,我想更新我的请求的 headers(在该追加方法调用中),为此我需要创建自己的 Headers object,在其上调用方法 append,然后将其分配给我请求的 headers 属性。我想直接在请求中这样做 body: 而不是写

 headers: this.headers

我想写这样的东西:

 headers: { 
    append("content-type", "application/json; charset=utf-8");
 }

或类似的东西:

  headers: new Headers().append(..)

这个想法是为了避免声明一个新的 object 来存储我的 headers。 我该怎么做?

恭敬地感谢您。

您可以将带有键和值的 JS object 文字直接传递给 headers 属性:

this.httpClient.fetch("api/Account/Register", {
    method: "POST",
    body: JSON.stringify({
        email: this.email,
        password: this.password
    }),

    headers: {
       "content-type", "application/json; charset=utf-8"
    }
});

或者您也可以将 Headers object pre-filled 与您的自定义 headers:

this.httpClient.fetch("api/Account/Register", {
    method: "POST",
    body: JSON.stringify({
        email: this.email,
        password: this.password
    }),

    headers: new Headers({
       "content-type", "application/json; charset=utf-8"
    })
});

另见 headers related test of the plugin