2014-02-25 4 views
0

작동하지 않음 "삭제", 나는/POST가/PUT하게 몸에 "_csrf"매개 변수를 전달하여 "CSRF"을 끄지 않고 요청을 삭제하려면 개 수용을 발견

에서 index.dust -> myScripts.js에서

<input id="csrfid" type="hidden" name="_csrf" value="{_csrf}"> 

->

var csrf = document.getElementById('csrfid').value; 
    $http({ method: 'POST', 
     url: 'http://localhost:8000/myRoute/', 
     data: { '_csrf': csrf, 'object': myObject } 
     }).success(function(result) { 
     //success handler 
     }).error(function(result) { 
     //error handler 
     }); 

그것은 완벽 POST/PUT 요청과 함께 작동합니다. 하지만 DELETE를 시도하면 500으로 실패합니다.

그러나 jQuery DELETE를 시도했는데 문제가 없습니다 ... AngularJs가 문제입니다 ... 누구든지 이전에 문제가 발생 했습니까?

답변

0

어떤 angular.js 버전을 사용하고 있습니까?

this 토론을 바탕으로, 바로 가기 메소드 $ http.delete를 사용하는 경우 angular.js가 요청 본문을 보내지 않지만 {method : 'DELETE'}를 사용하는 경우에는 본문이 전송되지 않습니다. 일반적으로 일부 브라우저는 삭제 요청의 본문을 보내지 않지만 JQuery와 작동하기 때문에 문제가되지 않는 것으로 우려됩니다.

일부 해결 방법이 일부 버전에서 작동하지 않을 수 있으므로 angular.js 버전에 대해 질문합니다.

+0

AngularJS v1.2.13 "csrf"를 해제하지 않고도 삭제 요청을 할 수있는 다른 알려진 해결 방법이 있습니까? jQuery를 내 프로젝트에만 포함시키고 싶지 않습니다. – rjnpnigrhi

+0

헤더를 다른 csrf 해결 방법으로 설정할 수있는 것 같습니다. http://stackoverflow.com/questions/14109927/angular-js-verify-csrf-token-in-post-request –