Angular HttpClient删除方法中的发送主体(5)
我正在Angular 5应用程序中将Http迁移到HttpClient,在我使用其中一个服务的方法之前,一切都很顺利:Angular HttpClient删除方法中的发送主体(5),angular,httpclient,Angular,Httpclient,我正在Angular 5应用程序中将Http迁移到HttpClient,在我使用其中一个服务的方法之前,一切都很顺利: deleteMultipleObjects(userId: number, officeId : number, objectsData : any) { const url = `${APP_URL}/delete-objects/${userId}/${officeId}`; let headers = new Headers({ 'Content-Type':
deleteMultipleObjects(userId: number, officeId : number, objectsData : any) {
const url = `${APP_URL}/delete-objects/${userId}/${officeId}`;
let headers = new Headers({ 'Content-Type': 'application/json' });
this.appOptionsService.log("Deleting multiple objects.....", url, objectsData);
return this.http
.delete(url, { headers : headers, body : objectsData } )
.map(this.extractData)
.catch(this.handleError);
}
如您所见,我在delete调用的主体中传递了一个objectobjectsData
,它基本上具有以下结构:
{
objectIds: [id1, id2, id3, ...]
}
我看到HttpClient
中的delete
方法不允许包含主体,因此如何通过调用发送要删除的对象ID数组?我有很多与此相同的delete调用,因此我必须在代码中更改很多内容以适应它
谢谢 您不能在
DELETE
http请求中发送正文
MDN上的HTTP规范说这是可能的
如果需要此功能,应使用PUT
作为解决方法。另一种方法允许删除API端点上的多个id,例如id。例如:
https://server.com/api/delete?ids=1,2,3,4,5
这需要对api进行一些更改。删除主体方法不可取,因为许多平台已开始忽略删除主体请求。因此,如果我想一次删除多个对象,是否必须使用PUT请求而不是delete?是的。这是实现多次删除的唯一解决方法。谢谢,我会更改所有呼叫,然后。。。干杯。我更改了PUT等价项的删除请求,因此可以在调用中使用正文发送要删除的对象。HTTP DELETE可能有正文。这是一个缺失的角度特征@GlueLabs在我回答这个问题的时候,MDN文档页面没有这个信息。