Nice programing

angularjs $ http.delete () 요청으로 데이터를 보내는 방법은 무엇입니까?

nicepro 2020. 12. 10. 21:09
반응형

angularjs $ http.delete () 요청으로 데이터를 보내는 방법은 무엇입니까?


'사용자'와 다 대다 관계가있는 리소스 '역할'이 있습니다. '역할'을 관리하려면 올바른 사용자 (로그인 한 사용자 일 필요는 없음)에서 역할을 제거하도록 역할 ID와 사용자 ID를 서버로 보내야합니다.

여기에 내가 시도한 것이지만 문서 에 따르면 이것이 가능하지 않습니다. uri에서 두 개의 ID를 보낼 수 있다는 것을 알고 있지만 내 laravel 백엔드는 가능한 경우 사용하고 싶은 resource / {resourceid}의 리소스가 풍부한 경로를 자동으로 설정합니다. 내가 놓친 이것을 할 방법이 있습니까?

var removeRole = function (roleid, userid) {
        var input =[];
        input.user = userid;

        $http.delete('/roles/' + roleid, input).success(function (data, status) {
            console.log(data);
        });
    };

/ users / 1 / roles / 2와 같은 URL을 통해 http DELETE를 수행 할 수 있습니다. 이것이 가장 RESTful 한 방법입니다.

그렇지 않으면 쿼리 매개 변수의 일부로 사용자 ID를 전달할 수 있다고 생각합니까? 같은 것

$http.delete('/roles/' + roleid, {params: {userId: userID}}).then...

나의 제안:

$http({
    method: 'DELETE',
    url: '/roles/' + roleid,
    data: {
        user: userId
    },
    headers: {
        'Content-type': 'application/json;charset=utf-8'
    }
})
.then(function(response) {
    console.log(response.data);
}, function(rejection) {
    console.log(rejection.data);
});

$http.delete메서드가 요청 본문을 수락하지 않습니다. 이 해결 방법을 시도 할 수 있습니다.

$http( angular.merge({}, config || {}, {
    method  : 'delete',
    url     : _url,
    data    : _data
}));

에 어디에 config당신은 등 헤더와 같은 구성 데이터를 전달할 수 있습니다


이 URL http://docs.angularjs.org/api/ngResource/service/$resource를 읽는 것이 좋습니다.

리소스의 삭제 메서드를 호출하는 방법을 재평가합니다.

이상적으로는 리소스 항목 자체의 삭제를 호출하고 리소스 ID를 catch all delete 메서드에 전달하지 않는 것이 좋습니다.

그러나 $ http.delete는 url 및 데이터 속성을 모두 포함하는 구성 개체를 허용합니다. 쿼리 문자열을 만들거나 개체 / 문자열을 데이터에 전달할 수 있습니다.

아마도이 라인을 따라 뭔가

$http.delete('/roles/'+roleid, {data: input});

다 대다 관계에는 일반적으로 연결 테이블이 있습니다. 이 "링크"를 고유 한 엔티티로 간주하고 고유 한 ID를 부여한 다음 해당 ID를 삭제 요청으로 보냅니다.

/ user / role과 같은 REST 리소스 URL을 사용하여 사용자 역할 "링크"엔티티에 대한 작업을 처리 할 수 ​​있습니다.

참고 URL : https://stackoverflow.com/questions/22055251/how-to-send-data-with-angularjs-http-delete-request

반응형