Angular 2 Http delete with Headers 用于使用 Web API REST
Angular 2 Http delete with Headers for consuming with Web API REST
我使用了 Angular 2 发布并使用来自 @angular/http 的 Http 和 Headers。
我尝试使用 Headers 和其他动词 POST、GET 和 PUT 调用动词删除,好吧。但是对于 "DELETE",不起作用。
我的代码:
remove(url:string, id:any) {
let headers = new Headers();
headers.append('Authorization': 'Bearer ' + this.token);
return this.http.delete(url, {
headers: headers;
body: { id: id }
}).map(response => response.json());
}
收到的响应是:请求的资源不支持http方法'delete'。
在我的控制器中,我有一些这样的东西:
[HttpDelete]
public Task<HttpResponseMessage> Delete(int id)
{
//..
}
谢谢你的帮助,问候!!
对我有用的解决方案是,以这种方式使用查询字符串:
remove(urlController:string, id:any){
let headers = new Headers();
headers.append('Authorization': 'Bearer ' + this.token);
return this.http.delete(urlController + '/?id=' + id, {
headers: headers;
}).map(response => response.json());
}
示例:
remove(urlController:string, id:any){
let headers = new Headers();
headers.append('Authorization': 'Bearer ' + this.token);
return this.http.delete('users'+ '/?id=' + '2', {
headers: headers;
}).map(response => response.json());
}
问题是您的 API 服务器必须允许 HTTP DELETE 方法。
当您执行 HTTP DELETE 请求时,您的浏览器首先向服务器发送 HTTP OPTIONS;服务器响应 header Access-Control-Allow-Methods,其中包含允许的方法列表。
您必须像这样发送选项响应Header:
Access-Control-Allow-Methods: DELETE
在此处阅读更多内容:
CORS support for PUT and DELETE with ASP.NET Web API
我使用自定义 httpService extends from http 我遇到了一些问题,我只是改变了 url 字符串,这个对我有用:
this.httpService.delete(`${API_URL}Favorites/${id}`)
我使用了 Angular 2 发布并使用来自 @angular/http 的 Http 和 Headers。
我尝试使用 Headers 和其他动词 POST、GET 和 PUT 调用动词删除,好吧。但是对于 "DELETE",不起作用。
我的代码:
remove(url:string, id:any) {
let headers = new Headers();
headers.append('Authorization': 'Bearer ' + this.token);
return this.http.delete(url, {
headers: headers;
body: { id: id }
}).map(response => response.json());
}
收到的响应是:请求的资源不支持http方法'delete'。
在我的控制器中,我有一些这样的东西:
[HttpDelete]
public Task<HttpResponseMessage> Delete(int id)
{
//..
}
谢谢你的帮助,问候!!
对我有用的解决方案是,以这种方式使用查询字符串:
remove(urlController:string, id:any){
let headers = new Headers();
headers.append('Authorization': 'Bearer ' + this.token);
return this.http.delete(urlController + '/?id=' + id, {
headers: headers;
}).map(response => response.json());
}
示例:
remove(urlController:string, id:any){
let headers = new Headers();
headers.append('Authorization': 'Bearer ' + this.token);
return this.http.delete('users'+ '/?id=' + '2', {
headers: headers;
}).map(response => response.json());
}
问题是您的 API 服务器必须允许 HTTP DELETE 方法。 当您执行 HTTP DELETE 请求时,您的浏览器首先向服务器发送 HTTP OPTIONS;服务器响应 header Access-Control-Allow-Methods,其中包含允许的方法列表。
您必须像这样发送选项响应Header:
Access-Control-Allow-Methods: DELETE
在此处阅读更多内容: CORS support for PUT and DELETE with ASP.NET Web API
我使用自定义 httpService extends from http 我遇到了一些问题,我只是改变了 url 字符串,这个对我有用:
this.httpService.delete(`${API_URL}Favorites/${id}`)