HTTP PUT header 不适用于 Angular 2

HTTP PUT header not working with Angular 2

我遇到了 Angular 2 的问题,事实上,我需要发送一个 PUT Http 请求授权 header 但它不起作用。

然而,它与 DELETEPOSTGET 完美配合(使用完全相同的代码)。

请求

private header = new Headers();
// [...]
launchPutRequest(): Promise<any> {
        const url = 'http://myurl.com/';
        this.header = new Headers();
        this.header.append('Authorization', 'Bearer ' + token);

        return this.http.put(url, { headers: this.header })
            .toPromise()
            .then(response => {
                return response.json().msg as any;
            });
    }

根据这张图片,我认为 header 格式不正确,但为什么只有 PUT

您可能遇到错误,因为 put 请求的签名是:

(url: string, body: any, option?: RequestOptionsArgs)

您正在提供:

(url, options)

如果您没有使用 body 参数,我建议您将 http 调用更改为:

return this.http.put(url, null, { headers: this.header })

希望对您有所帮助。