obj={
"candidateFeedbackQuestionInfoId": 8
};
jsonobj=JSON.stringify(this.obj);
return this.http.delete(this.feebackUrl,this.jsonobj).map(this.extractData);
如果我们传递body来删除它会抛出类型不匹配错误,任何帮助都会很棒
答案 0 :(得分:8)
delete
的第二个参数是RequestOptionsArgs
。所以你可以做到
this.http.delete(this.feebackUrl,{ body: this.jsonobj })
答案 1 :(得分:0)
删除通常应使用请求或URL参数。理想情况下,对象的标识符应足以删除对象。如果您正在做更多的事情,我建议您使用帖子
以下是删除API调用的Angular2代码
this.headers = new Headers({ 'Content-Type': 'application/json' });
this.options = new RequestOptions({ headers: this.headers });
return this.http.delete('/rest/batch/' + audit.timestamp.toString(), this.options)
.map(res => res.json());
在服务器端,使用Express,您可以按如下方式接听电话
app.delete('/rest/batch/:id', function(req, res) {
objectStore.removeBatchObject(req, res); // your code to perform operation
});
或者你可以在RequestOptions对象中传递更多参数,如果有的话你必须绕过DELETE REST API的典型结构
答案 2 :(得分:0)
RequestOptionsArgs
和RequestOptions
已被HttpClient弃用。您可以使用DELETE方法使用抽象请求方法发送JSON数据,如下所示:
deleteItem(id: string) {
return this.http
.request('DELETE', API_URL + '/item', { params: { sessionId: "12345"}, body: {itemId: id}})
.map(this.getResponseData)
.catch(this.handleError);
}
params
将是查询字符串,body
将是JSON数据。
答案 3 :(得分:0)
您可以尝试使用此示例:
import { HttpHeaders } from '@angular/common/http';
const headersJson = new HttpHeaders().set('Content-Type', 'application/json');
this.http.request("delete", APPLICATION_HOST + '/employee/delete/',
{
headers : headersJson,
body : "{empId : 123, empname : 'jerwo'}"
})
.subscribe(
res => {
// Ok
},
err =>
{
// Error ops
});