2016-11-24 4 views
1

角度2のリリースを使用し、http:// angular/httpのHTTPとヘッダーを使用しました。Web API RESTで消費するヘッダーで角度2のHttp削除

私は、ヘッダー、および他の動詞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メソッドをサポートしていません。私のコントローラで

私はこのようないくつか持っている:

[HttpDelete] 
public Task<HttpResponseMessage> Delete(int id) 
{ 
    //.. 
} 

、よろしく私を助けてくれてありがとうを!

+0

あなたはクライアント側とサーバー側のルートを渡しているURLは何ですか? –

+0

私はこれもいくつかのURLの間違いかもしれないと思います。デバッグして、削除するURLが正しいかどうか確認してください。また、あなたのapiは.netコアですか? – jpgrassi

+0

http:// localhost:4200/api/user .net coreのAPI RESTです。 – jfreire

答えて

1

このように私のために働いたソリューションでした、使用クエリ文字列、:

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()); 
} 
0

問題あなたのAPIサーバは、HTTP DELETEメソッドを許可しなければならないということです。 HTTP DELETE要求を実行すると、ブラウザは最初にHTTP OPTIONSをサーバーに送信します。サーバは許可されたメソッドのリストを含むメソッドAccess-Control-Allow-Methodsヘッダで応答する。

あなたはこのようなオプションレスポンスヘッダを送信する必要があります。もっとここ

Access-Control-Allow-Methods: DELETE 

読む: CORS support for PUT and DELETE with ASP.NET Web API

0

を私はカスタムを使用HTTPServiceのHTTPから延びており、私はいくつかの問題に直面しました私はちょうどURLの文字列を変更する、これは私のための仕事です:

this.httpService.delete(`${API_URL}Favorites/${id}`) 
関連する問題