0

这实际上是我第一次尝试调用删除方法 angular。我的 dataService 中的代码是:

deleteMeaningItem(data): Observable<Result> {
    return this.http.delete<Result>(url, data);
  }

在组件中:

 this.dataService.deleteMeaningItem({id: id}).subscribe(res => {
 if (res.status) {
    //do something          
  }
  });

但我收到 415 Unsupported Media Type 错误!我还尝试在我的请求标头中发送 Content-Type,例如:

deleteMeaningItem(data): Observable<Result> {
     return this.http.delete<Result>(global.dataUrl + '/MeaningItems/Delete', { params: data,
     headers: {'Content-Type': 'application/json'}});
}

但后来我收到 400 Bad Request 错误!我需要你的帮助。

4

3 回答 3

1

我想问题可能出在data对象上。我将首先检查 API 的文档,因为看起来您还缺少Autorization通常需要的标头,例如delete

于 2020-09-30T06:44:39.073 回答
1

我所要做的就是在请求选项中提供正文。所以我这样做了:

deleteMeaningItem(meaningId): Observable<Result> {
    const options = {
      headers: new HttpHeaders({
        'Content-Type': 'application/json',
      }),
      body: meaningId,
    };
    return this.http.delete<Result>(global.dataUrl + '/MeaningItems/Delete', options);
  }
于 2020-09-30T06:59:54.657 回答
-1

也许使用 RXJS 更容易。

先定义删除函数@Service

delete(id: string): Observable<Result> {
 return this.httpClient.delete<Result>(`${global.dataUrl}/MeaningItems/${id}`);
}

然后尝试这样称呼它:

this.service.delete(id).pipe(
  tap(r => console.log('success', r)),
  catchError(e => {
    console.error('error', e);
    return throwError(e);
  })
).subscribe();
于 2020-09-30T06:25:44.943 回答