Angular 6 http.delete请求

时间:2018-09-09 12:43:10

标签: angular typescript rxjs

我似乎无法让我的删除请求正常工作。我已经完成了所有的get请求,但是现在我被困在delete上,似乎无法将其包裹住。

console.log的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);
}

2 个答案:

答案 0 :(得分:9)

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

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

答案 1 :(得分:1)

您必须致电 subscribe(),否则什么也不会发生。仅调用ticketService.deleteTicket(this.id)不会启动DELETE请求。

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