Angular2 Http.Delete 正文为空

Angular2 Http.Delete Body is null

我遵循了 Angular2 tutorial 但是 Http.delete 总是抛出异常:
TypeError: this._body is null
hero.service.ts

的原始代码
public deleteHero(hero: Hero) {

    const headers = new Headers({
        'Content-Type': 'application/json'
    });

    return this._http
        .delete(this._heroesUrl + "/" + hero.Id, { headers: headers })
        .toPromise()
        .catch(this.handleError);
}

原来我遗漏的一件小事如下:

.delete(this._heroesUrl + "/" + hero.Id, { headers: headers, body: "" })

在headers之后:headers你还可以设置一个body。现在因为它是一个删除请求,所以通常没有 body。但是如果 body 为 null angular 将抛出异常...

编辑
这是一种解决方法,但实际答案来自@simon

实际上,虽然接受的答案是有效的 work-around,但正确的解决方案是删除 Content-Type header。 DELETE 请求不应该有 body(空或其他),因此它们也不应该有 Content-Type header。 GET 请求也是如此。该错误是由于 Content-Type header 而没有 body(这是不合逻辑的组合)而引发的。