Angular 4 - HTTP删除不起作用

Jac*_*r94 8 angular

我正在尝试创建一个MEAN crud操作.我在节点中有一个带有删除http方法的api localhost:3000/api/user?id=<some document id>.下面是我使用的角度代码:

deleteUser(user) {
    console.log("user to delete:" + user._id);
    let myParams = new URLSearchParams();
    myParams.append('id', user._id);
    return this.http.delete('/api/user', { search: myParams })
      .map(res => res.json());
}
Run Code Online (Sandbox Code Playgroud)

正确的ID正在打印到控制台,但我甚至无法看到在Chrome网络栏中进行的呼叫,也没有删除数据.出了什么问题?

Igo*_*gor 21

如果要执行调用,则必须订阅该调用.请参阅HttpClient文档.

请注意subscribe()方法.从HttpClient返回的所有Observable都很冷,也就是说它们是提出请求的蓝图.在调用subscribe()之前不会发生任何事情,并且每个此类调用都会发出单独的请求.例如,此代码发送两次具有相同数据的POST请求:

例:

otherMethod(){
    this.userService.deleteUser(user).subscribe(() => console.log("user deleted"));
}
Run Code Online (Sandbox Code Playgroud)


Saj*_*ran 6

如果您在组件内部调用此方法,请使用 .subscribe()

this.userService.deleteUser(user).subscribe(() => console.log("user deleted")); this.errorMessage = error);
Run Code Online (Sandbox Code Playgroud)