我试图从Angular 2前端与一个有点RESTful的API交谈。
要从集合中删除某些项目,除了可以附加到网址的removée唯一ID之外,我还需要发送一些其他数据,即身份验证令牌,某些收集信息和一些辅助数据。
我发现这样做最直接的方法是将身份验证令牌放入请求Headers和正文中的其他数据。
但是,Angular 2的Http模块并不完全赞同带有正文的DELETE请求,并尝试发出此请求
let headers= new Headers(); headers.append('access-token',token); let body= JSON.stringify({ target: targetId,subset: "fruits",reason: "rotten" }); let options= new RequestOptions({headers:headers}); this.http.delete('http://testAPI:3000/stuff',body,options).subscribe((ok)=>{console.log(ok)}); <------line 67
给出了这个错误
app/services/test.service.ts(67,4): error TS2346: Supplied parameters do not match any signature of call target.
现在,我在语法方面做错了吗?我很确定每个RFC都支持DELETE主体
是否有更好的方式来发送数据?
或者我应该将其转储到标题中并将其称为一天?
任何关于这个难题的见解都将受到赞赏
在http.js中定义@ angular / http:
delete(url,options)
请求不接受正文,所以看起来你唯一的选择就是你的数据在URI中。
我找到了另一个主题,其中引用了对应的RFC,以及其他内容:
How to pass data in the ajax DELETE request other than headers