【问题标题】:net::ERR_EMPTY_RESPONSE error on DELETE Method in Angular 4?Angular 4 中 DELETE 方法的 net::ERR_EMPTY_RESPONSE 错误?
【发布时间】:2015-04-16 23:18:48
【问题描述】:

我正在使用以下方法删除数据

return this.http.delete(this.ApiURL, new RequestOptions({headers: headers,body: body }))
.map((res: Response) => res.json());

但是得到了net:: ERR_EMPTY_RESPONSE 当我在 POSTMAN 中运行它时,它被成功删除。

请指导

【问题讨论】:

  • 你的问题很模糊。尝试发布一些代码sn-ps来解释你需要完成什么
  • 嗨@rob-ot..对不起,现在我已经编辑了我的问题....请您指导我...
  • 发布处理此请求的服务器端代码。
  • @TsvetanGanev 我在服务器端代码中没有提到上面提到的错误响应。为什么在删除的情况下会发生这种情况。它也在邮递员工具中工作,所以我猜 api 是正确的。请帮助
  • 服务器返回的HTTP状态码是什么?

标签: angular typescript angular-http angular-observable


【解决方案1】:

在您的情况下,服务器返回一个空的 HTTP 响应正文和状态 200 OK。但是,HttpResponse.json() 方法要求正文是有效的 JSON 字符串。由于您没有正文,因此 .json() 方法会引发 Unexpected end of JSON input 错误。您也没有.catch(),这个未处理的错误会传播到浏览器控制台。

解决此问题的一种方法是,如果您可以访问服务器端代码。您可以将 DELETE 方法的成功响应状态代码更改为 204(“无内容”)。这样.json() 方法就不会抛出错误,因为它期望响应体为空。

另一种方式是想当然地认为如果状态码为200,则删除成功完成,而不是在响应对象上调用.json()

【讨论】:

    猜你喜欢
    • 2017-05-26
    • 2021-06-30
    • 1970-01-01
    • 2011-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    相关资源
    最近更新 更多