Angular 2-Http-正确忽略空结果

Angular 2-Http-正确忽略空结果,http,angular2-services,Http,Angular2 Services,我有很多REST端点,它们处理一个请求并简单地返回200。我注意到使用json()映射结果是一个错误。如果我尝试不做任何类型的映射,我会看到一个浏览器警告它无法解析XML。由于不返回任何内容是很常见的,我很好奇我应该如何处理响应 下面是一个基本代码示例: await this.http.put("/api/some_url", data).toPromise(); 以下是Firefox中显示的警告: XML Parsing Error: no root element found Locati

我有很多REST端点,它们处理一个请求并简单地返回200。我注意到使用
json()
映射结果是一个错误。如果我尝试不做任何类型的映射,我会看到一个浏览器警告它无法解析XML。由于不返回任何内容是很常见的,我很好奇我应该如何处理响应

下面是一个基本代码示例:

await this.http.put("/api/some_url", data).toPromise();
以下是Firefox中显示的警告:

XML Parsing Error: no root element found Location: http://localhost/api/some_url Line Number 1, Column 1:
如果我尝试使用
json()
进行映射,它会完全崩溃。如果我什么也不做或试图映射到
text()
,我只会收到警告


在所有情况下,响应头都包含
内容长度:0
,因此我很惊讶Angular2/Firefox试图解析任何内容。我不知道这个警告是来自Angular2还是Firefox。我曾在Chrome和IE中尝试过,但没有任何警告。因此,我想知道它是否特定于Firefox。

当没有返回任何内容时,例如ASP.NET Core中的
return Ok()
(HTTP状态代码200),内容类型(自然)没有指定,但Firefox假定响应为XML并尝试解析空文档,这会导致以下控制台错误:

XML分析错误:找不到根元素位置

指定
返回NoContent()(HTTP状态代码204)让Firefox很开心(也适用于其他浏览器)

该问题报告于:

解析失败只会记录到web控制台