如何正确调用删除方法?
how can I call a delete method properly?
这实际上是我第一次尝试调用删除方法angular。
我的数据服务中的代码是:
deleteMeaningItem(data): Observable<Result> {
return this.http.delete<Result>(url, data);
}
在组件中:
this.dataService.deleteMeaningItem({id: id}).subscribe(res => {
if (res.status) {
//do something
}
});
但我收到 415 不支持的媒体类型错误!
我还尝试在我的请求 header 中发送 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 错误!
我需要你的帮助。
也许使用 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();
我猜问题可能出在 data
object 中。我将首先检查 API 的文档,因为看起来您还缺少 Autorization
header 等方法通常需要的 delete
我所要做的就是在请求选项中提供正文。所以我这样做了:
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);
}
这实际上是我第一次尝试调用删除方法angular。 我的数据服务中的代码是:
deleteMeaningItem(data): Observable<Result> {
return this.http.delete<Result>(url, data);
}
在组件中:
this.dataService.deleteMeaningItem({id: id}).subscribe(res => {
if (res.status) {
//do something
}
});
但我收到 415 不支持的媒体类型错误! 我还尝试在我的请求 header 中发送 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 错误! 我需要你的帮助。
也许使用 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();
我猜问题可能出在 data
object 中。我将首先检查 API 的文档,因为看起来您还缺少 Autorization
header 等方法通常需要的 delete
我所要做的就是在请求选项中提供正文。所以我这样做了:
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);
}