2016-09-02 2 views
1

aspnetcore api에 게시 할 때 415 HTTP 오류 결과가 표시됩니다. 내 엔드 포인트는 [HttpPost] 대신으로 표시되는 경우 이 발생하지 않습니다 [HttpDelete]를 aspnetcore API를 컨트롤러에서

: 각 컨트롤러에

[HttpDelete] 
public async Task<IActionResult> Delete([FromBody]EntityViewModel vm) 
{ 

:

var obj = new Object(); 
obj.atr1 = 1; 
obj.atr2 = 2 ; 

$http.post(route, obj) 
    .then(function (response) { 

EntityViewModel .cs

public class EntityViewModel 
    { 
     public int Atr1 { get; set; } 
     public int Atr2 { get; set; } 
    } 
+0

를 사용하는 제언 AngularJS와 부분에 대한

? –

+0

@SterlingArcher가 EntityViewModel 클래스로 질문을 업데이트했습니다. –

답변

0

처음 질문을 읽은 후 조금 혼란스러워 ...

$http.post은 DELETE 요청을 발행하는 데 사용됩니까? $http.delete은 왜이 용도로 사용되지 않습니까? 그런 다음 AngularJS $http.delete에 대한 자세한 내용을 읽고 서버에 본문을 보낼 수 없다는 사실을 알게되었습니다. 그런 다음 DELETE 요청으로 본문을 보낼 수 있어야하는 이유를 스스로 물었습니다. 여기에 좋은 질문이 있습니다 : Is an entity body allowed for an HTTP DELETE request? - 사양은 본문 데이터와 함께 DELETE 요청을 허용합니다.

ASP.NET 코어 본문에 전송 JSON 데이터와 DELETE 요청을 처리 할 수있는 ... 긴 이야기 짧은 확인하십시오. 그래서 컨트롤러 부분이 유효합니다. 상태 코드 (415)를 방지하기 위해

[HttpDelete] 
public async Task<IActionResult> Delete([FromBody]EntityViewModel vm) 
{ 

는 (지원되지 않는 미디어 유형)는 헤더 필드 Content-Typeapplication/json로 설정하는 것이 매우 중요합니다. 나는 Postman을 클라이언트로 삼아이 실험을 잊어 버렸고 415 개의 상태 코드도 얻었다. 나는이 행해져 Yout API 경로가 기대되는 데이터 유형의 어떤 종류의

var obj = new Object(); 
obj.atr1 = 1; 
obj.atr2 = 2 ; 

$http(
    { 
    method: 'DELETE', 
    url: route, 
    headers: { 
     'Content-Type': 'application/json' 
    }, 
    data: obj 
    } 
).then(function (response) { 
관련 문제