【问题标题】:Angular 6 http.delete request not workingAngular 6 http.delete 请求不起作用
【发布时间】:2019-02-14 02:42:08
【问题描述】:

我似乎无法让我的删除请求生效。我已经完成了所有的 get 请求,但现在我被困在 delete 上,似乎无法理解它。

console.log'd URL 总是正确的,删除​​请求通过 Postman 可以正常工作。

有什么想法吗?

HTML

<button class="button button3" (click)="delTicket()"><span class="fa fa-trash"></span></button>

TS

delTicket(){
    this.id = this.route.snapshot.params.id;
    this.ticketService.deleteTicket(this.id);
}

服务

deleteTicket(id): Observable<Ticket[]>{
    console.log(this.apiUrl + id);
    return this.http.delete<Ticket[]>(this.apiUrl + id);
}

【问题讨论】:

  • 控制台有错误吗?
  • 无,只记录 URL。
  • 开发工具中的网络标签是什么?在调用 API ia 并刷新页面后,你能删除它吗? ?

标签: angular typescript rxjs


【解决方案1】:

您需要在组件内部调用 subscribe(),否则请求不会被调用

delTicket(){
    this.id = this.route.snapshot.params.id;
    this.ticketService.deleteTicket(this.id).subscribe((data)=>{
         console.log("success");
    });
}

【讨论】:

  • 在 3 分钟内:D
【解决方案2】:

你必须调用 subscribe() 否则什么都不会发生。只是调用 ticketService.deleteTicket(this.id) 不会发起 DELETE 请求。

  1. 在您对该方法返回的可观察对象调用 subscribe() 之前,HttpClient 方法不会开始其 HTTP 请求。这适用于所有 HttpClient 方法。
  2. 调用 subscribe(...) 会触发 observable 的执行,并导致 HttpClient 编写 HTTP 请求并将其发送到服务器。

【讨论】:

  • 老兄,这是 2018 年 9 月:D
  • @HeikoPiirme 没关系。额外的解释总是好的:)
猜你喜欢
  • 2016-09-23
  • 2015-08-10
  • 2015-08-26
  • 2019-04-15
  • 1970-01-01
  • 2020-04-10
  • 1970-01-01
  • 2018-12-23
  • 1970-01-01
相关资源
最近更新 更多