Angular 2 - 删除带参数的请求

Angular 2 - 删除带参数的请求

问题描述:

我需要做一个需要2个参数的删除请求,但我不确定如何去做。Angular 2 - 删除带参数的请求

我的代码看起来是这样的:

public deleteDefinition(typeName: string, id: number) { 
    console.log("in API call"); 
    const path = `${this.apiEndpoint}/Definition/Delete/`; 
    return this.http.delete(path, typeName, id) 
     .map((response: Response) => response.json()) 
     .catch(this.handleError); 
} 

,但我一直收到errror

提供的参数不匹配,通话对象的任何签名。

我的语法有什么问题?

在此先感谢!

+1

签名是'http.delete(url,options)'。你应该在URL中包含'id'。至于你的'typeName'参数,我不知道它是什么意思。 – AngularChef

+0

@AngularFrance好吧,所以我改变了我的变量路径以包含params,现在我做了一个'return this.http.delete(path)'但是,没有任何反应。在我的控制台中,我甚至无法看到请求,那么它是否根本不在接听电话? – Nicolas

+2

仅当订阅**时才会执行**。你能确认在你的代码中有什么像'XXX.deleteDefinition(a,b).subscribe()'这样的东西吗? – AngularChef

在Angular 2中当前不支持传递正文消息到HTTP DELETE操作.HTTP DELETE调用也不意味着在正文中使用额外信息发送。

一个解决方案是更改URL结构,因此您不必在正文中提供信息。

另一种解决方法是使用POST而不是DELETE。 POST确实允许您提供消息正文。