Angular 7 Http 删除 api 句柄主体?

6 angular angular-httpclient

我正在尝试从 Angular 7 前端与有点 REST API 交谈。

要从集合中删除某些项目,除了删除唯一 ID 之外,我还需要发送一些其他数据,即身份验证令牌、一些集合信息和一些辅助数据。

但是,Angular 7 的 Http 模块并不完全同意带有正文的 DELETE 请求,并尝试发出此请求。

这是我的api:

DELETE /user/verifications

body {
  "doc_type": "govt_id",
  "doc_id": "5beedd169db947867b710afd"
}
Run Code Online (Sandbox Code Playgroud)

小智 19

这适用于 Angular 6+,其中 http 是您的 HttpClient

const options = {
      headers: new HttpHeaders({
        'Content-Type': 'application/json'
      }),
      body: {
        name: 'ravi',
        id: 'ravi123'
      }
    }

    this.http.delete('http://localhost:8080/user', options).subscribe(s => {
      console.log(s);
    })
Run Code Online (Sandbox Code Playgroud)


Ran*_*dom 5

http.delete在 angular6 和 angular9 上使用对我不起作用。我不得不this.http.request('delete', url, options)改用。
此外,Typescript 似乎在键入响应方面存在一些问题,因此我不得不使用map操作员手动强制结果类型:

const httpOptions: any = {
  headers: {
    'Content-Type': 'application/json'
  }
};
const uri = '/path/to/delete/api';

httpOptions.body = {
  prop1: value1,
  prop2: value2
  // ...
};

return this.http.request<string>('delete', uri, httpOptions).pipe(
  map((result: any) => result as string), // fix typescript typing
  tap((result: string) => {
    console.log('response from server:', result);
  }
);
Run Code Online (Sandbox Code Playgroud)